ให้เรตสมาชิก: 2 / 5

ดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

 

ใน Joomla นั้น ถ้าจะเขียนการติดต่อเชื่อมฐานข้อมูล มีวิธีการง่ายๆดังนี้

1. Connect Database 


ให้ใช้คำสั่ง 
$db =& JFactory::getDBO();ถ้าเทียบกับ PHP แล้วก็คือคำสั่ง
$con = mysql_connect("localhost","root","password");นั้นเอง

2. Code SQL


ใน Joomla นั้นถ้าจะใช้คำสั่ง SQL ก็ คล้ายๆกับ PHP แต่จะแตกต่างตรงที่ ชื่อ ฟิลด์ กับ ข้อมูล นั้นจะอ้างต่างกัน
ชื่อฟิลด์จะต้องเป็น 

$db->nameQuote('ชื่อฟิลด์')ส่วน ข้อมูลจะต้องเป็น
$db->quote('ข้อมูล')

ตัวอย่าง วิธีการใช้งาน
 
$query = "
SELECT *
FROM ".$db->nameQuote('#__example_table')."
WHERE ".$db->nameQuote('id')." = ".$db->quote('999999').";
";
ข้อควรระวัง ควรระวังเรื่องการเชื่อมคำเช่น . และ "" ให้ดี อย่าให้พลาด
 
3.setQuery($query)
 
ก็ตามชื่อเลย เป็นการ set query ที่เราเขียนคำสั่ง sql เอาไว้ เมื่อจะนำเอาไปใช้ให้ทำการ set query ก่อน เป็นการกรองคำที่มีผลต่อ SQL เพื่อไม่ให้ SQL โดน Injection ทำให้เพิ่มความปลอดภัยกับระบบของเรามากขึ้น
 
ตัวอย่าง
$db->setQuery($query);

4.query()
 
เมื่อทำการ setQuery เสร็จแล้วก็ให้ใช้คำสั่ง query() เลยเพื่อเป็นการ result ข้อมูลตามที่เราได้เขียนไว้
 
ตัวอย่าง
$db->query();


5.insertid()
 
เป็นการเลือกเอาค่า Auto ID เวลาที่เรา ทำการ Add ข้อมูลไปล่าสุด ซึ่งอาจจะเอาค่าไอดีนี้ไปทำอะไรต่ออย่างอื่นได้
 
ตัวอย่าง
$user_id = $db->insertid();

6.loadRow() / loadRowList()
 
คือการ โหลด แถวข้อมูลทั้งหมดใน ตารางนั้นๆ *ถ้าใช้ loadRowList() ข้อมูลจะออกมาทุกแถว แต่ถ้าไม่มีคำว่า List ข้อมูลจะออกมาแค่แถวเดียว
 
ตัวอย่าง
id name email username
1 John Smith johnsmith@domain.example johnsmith
2 Magda Hellman magda_h@domain.example magdah
3 Yvonne de Gaulle ydg@domain.example ydegaulle

. . .
$db->setQuery($query);
$row = $db->loadRow();
print_r($row);

ผลที่ได้จะเป็น ตัวแปร Array ซึ่ง สามารถจะเอาไปใช้ได้เลยโดยอ้าง index เป็นเลขแถว
Array ( [0] => 1 [1] => John Smith [2] => johnsmith@domain.example [3] => johnsmith )
 
7.loadObject() / loadObjectList()
 
คือการโหลด คอลัม ต่างๆใน ตารางนั้นๆ ซึ่งถ้าใช้ loadObjectList() จะเป็นการเอาทุกข้อมูลใน คอลัมที่เราอ้างใน Index ของ Array 
 
ตัวอย่าง
id name email username
1 John Smith johnsmith@domain.example johnsmith
2 Magda Hellman magda_h@domain.example magdah
3 Yvonne de Gaulle ydg@domain.example ydegaulle

. . .
$db->setQuery($query);
$row = $db->loadObjectList();
print_r($row);

Array (
[0] => Array ( [id] => 1 [name] => John Smith [email] => johnsmith@domain.example [username] => johnsmith )
[1] => Array ( [id] => 2 [name] => Magda Hellman [email] => magda_h@domain.example [username] => magdah )
[2] => Array ( [id] => 3 [name] => Yvonne de Gaulle [email] => ydg@domain.example [username] => ydegaulle )
) 
นี้เป็นผลลัพท์จากการใช้ loadObjectList(); จึงได้ ข้อมูลทั้งหมดออกมา แต่ถ้า ไม่มีคำว่า List จะออกมาแค่ข้อมูลเดียว
 
นี้เป็นแค่ข้อมูลบางส่วน ถ้าใครต้องการศึกษาเพิ่มเติม สามารถเข้าไปดูได้ที่ http://docs.joomla.org/Accessing_the_database_using_JDatabase
 ซึ่งเป็นข้อมูลภาษาอังกฤษ สามารถดูได้ละเอียดกว่านะครับ
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
การใช้ฟังก์ชัน Filter_list
โดย anuwat somsakul พ 15 ส.ค. 2018 6:10 pm บอร์ด PHP Knowledge
0
7
พ 15 ส.ค. 2018 6:10 pm โดย anuwat somsakul
Test ระบบ Open Erp 99
โดย Lamduan พ 15 ส.ค. 2018 6:09 pm บอร์ด M066 - นางสาวลำดวน พันโอดเบี้ย
0
8
พ 15 ส.ค. 2018 6:09 pm โดย Lamduan
วิธีอัด vdo หน้าจอด้วย Camtasia Studio
โดย tai14 พ 15 ส.ค. 2018 4:49 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
8
พ 15 ส.ค. 2018 4:49 pm โดย tai14
สอบถามวิธีการปิด .gitignore ใน netbean ไม่ให้อัพขึ้น git ค่ะ
โดย pprn พ 15 ส.ค. 2018 4:44 pm บอร์ด Programming - PHP
1
15
พ 15 ส.ค. 2018 4:55 pm โดย tsukasaz
มาทำความรู้จักกับ self ใน Python กัน
โดย tatiya พ 15 ส.ค. 2018 3:26 pm บอร์ด Python Knowledge
0
6
พ 15 ส.ค. 2018 3:26 pm โดย tatiya
Q - เพิ่มช่องค้นหาแล้ว error: Call to a member function getGroup() on null
โดย Parichat พ 15 ส.ค. 2018 3:01 pm บอร์ด Joomla Dev
1
4
พ 15 ส.ค. 2018 3:17 pm โดย Parichat
วิธีเปลี่ยนโทนสีของภาพด้วย Photoshop
โดย tai14 พ 15 ส.ค. 2018 1:10 pm บอร์ด Graphic design
1
14
พ 15 ส.ค. 2018 3:00 pm โดย mindphp
สอบถามวิธีที่ทำให้ภาพที่แสกนเสร็จไม่เด้งขึ้นมาเองค่ะ
โดย taemmynatchapon พ 15 ส.ค. 2018 12:00 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
6
พ 15 ส.ค. 2018 12:00 pm โดย taemmynatchapon
วิธีเพิ่มความคมชัดให้ภาพด้วย Photoshop
โดย tai14 พ 15 ส.ค. 2018 11:01 am บอร์ด Graphic design
0
9
พ 15 ส.ค. 2018 11:01 am โดย tai14
ตัวช่วยในการใส่ลายน้ำให้กับรูปภาพด้วย Plugin MD Watermark ใน Joomla
โดย Parichat พ 15 ส.ค. 2018 10:44 am บอร์ด PHP News
0
8
พ 15 ส.ค. 2018 10:44 am โดย Parichat
PHP:Convert Function รวมฟังก์ชันแปลงเลขฐาน
โดย anuwat somsakul พ 15 ส.ค. 2018 10:32 am บอร์ด PHP Knowledge
0
9
พ 15 ส.ค. 2018 10:32 am โดย anuwat somsakul
งานที่ต้องทำประจำวันที่ 15 สิงหาคม 2561
โดย tai14 พ 15 ส.ค. 2018 10:29 am บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
1
11
พ 15 ส.ค. 2018 7:40 pm โดย tai14
งานประจำวันที่ 15 สิงหาคม 2561
โดย Lamduan พ 15 ส.ค. 2018 10:26 am บอร์ด M066 - นางสาวลำดวน พันโอดเบี้ย
1
7
พ 15 ส.ค. 2018 7:17 pm โดย Lamduan
งานประจำวันที่ 15 สิงหาคม 2561
โดย prakon พ 15 ส.ค. 2018 10:20 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
1
15
พ 15 ส.ค. 2018 10:21 am โดย prakon
งานประจำวันที่ 15 สิงหาคม 2561
โดย tatiya พ 15 ส.ค. 2018 10:12 am บอร์ด M065 - ตติยะ นาชัย
1
8
พ 15 ส.ค. 2018 7:37 pm โดย tatiya
งานประจำวันที่ 15 สิงหาคม 2561
โดย pprn พ 15 ส.ค. 2018 10:03 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
1
10
พ 15 ส.ค. 2018 7:49 pm โดย pprn
งานประจำวันที่ 15 สิงหาคม 2561
โดย anuwat somsakul พ 15 ส.ค. 2018 9:53 am บอร์ด M067 - นายอนุวัฒน์ สมสกุล
1
6
พ 15 ส.ค. 2018 7:36 pm โดย anuwat somsakul
การทำงานแบบ สืบทอด class บน Python
โดย tatiya อ 14 ส.ค. 2018 7:16 pm บอร์ด Python Knowledge
0
13
อ 14 ส.ค. 2018 7:16 pm โดย tatiya
วิธีลบริ้วรอยด้วย Photoshop
โดย tai14 อ 14 ส.ค. 2018 7:05 pm บอร์ด Graphic design
0
22
อ 14 ส.ค. 2018 7:05 pm โดย tai14
วิธีสร้างตัวอักษรนูนด้วย Photoshop
โดย tai14 อ 14 ส.ค. 2018 5:02 pm บอร์ด Graphic design
0
35
อ 14 ส.ค. 2018 5:02 pm โดย tai14