ให้เรตสมาชิก: 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
 ซึ่งเป็นข้อมูลภาษาอังกฤษ สามารถดูได้ละเอียดกว่านะครับ
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ผู้รู้ ขอความอนุเคราะห์แก้ code ให้หน่อย
โดย goobot_com จ 23 เม.ย. 2018 10:22 pm บอร์ด Programming - PHP
0
10
จ 23 เม.ย. 2018 10:22 pm โดย goobot_com
แก้ code ให้หน่อย while(list($key, $value) = each ไม่ทำงาน เปลี่ยนเป็น foreach($_POST[id2] as $key =>$value)แล้วไม่ได้
โดย goobot_com จ 23 เม.ย. 2018 10:20 pm บอร์ด Programming - PHP
0
8
จ 23 เม.ย. 2018 10:20 pm โดย goobot_com
while(list($key, $value) = each ไม่ทำงาน เปลี่ยนเป็น foreach($_POST[id2] as $key => $value)
โดย Anonymous จ 23 เม.ย. 2018 10:14 pm บอร์ด Programming - PHP
0
6
จ 23 เม.ย. 2018 10:14 pm โดย บุคคลทั่วไป
จะทำให้เว็บฟอรั่มออนไลน์ได้ไหมครับ?
โดย Anonymous จ 23 เม.ย. 2018 1:52 pm บอร์ด Programming - PHP
0
12
จ 23 เม.ย. 2018 1:52 pm โดย บุคคลทั่วไป
รูปแบบการทำงานของ NAT มีอะไรบ้าง
โดย Patcharanan.0399 ศ 20 เม.ย. 2018 5:14 pm บอร์ด Share Knowledge
0
46
ศ 20 เม.ย. 2018 5:14 pm โดย Patcharanan.0399
ส่วนที่ไม่เข้าใจในบทความ Module MD Client History
โดย alisa93 ศ 20 เม.ย. 2018 4:56 pm บอร์ด Mobile Programming - Android, iOS, Window Phone
2
28
ศ 20 เม.ย. 2018 5:56 pm โดย alisa93
Loopback คืออะไร
โดย Patcharanan.0399 ศ 20 เม.ย. 2018 4:21 pm บอร์ด Share Knowledge
0
31
ศ 20 เม.ย. 2018 4:21 pm โดย Patcharanan.0399
สอบถามเรื่อง SQL การ SELECT id
โดย AePongsak ศ 20 เม.ย. 2018 4:21 pm บอร์ด SQL - Database
5
73
ศ 20 เม.ย. 2018 5:05 pm โดย AePongsak
Q - ติดตั้งโมดูลแล้วไฟล์ภาษาหาย
โดย Parichat ศ 20 เม.ย. 2018 3:52 pm บอร์ด Joomla Development
2
29
ศ 20 เม.ย. 2018 4:20 pm โดย Parichat
Q - ทำ Drop Down ในหน้าผู้ดูแลระบบของโมดูล
โดย Parichat ศ 20 เม.ย. 2018 1:22 pm บอร์ด Joomla Development
13
78
จ 23 เม.ย. 2018 3:57 pm โดย tsukasaz
ผมสงใสทำไมรีโมทแอร์ ทำไมถึงต้องอยุ่ข้างประตู
โดย nuattawoot ศ 20 เม.ย. 2018 12:58 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
2
61
ศ 20 เม.ย. 2018 9:47 am โดย tsukasaz
Normal Form ของ Normalization มีอะไรบ้าง
โดย Patcharanan.0399 พฤ 19 เม.ย. 2018 6:37 pm บอร์ด Share Knowledge
0
23
พฤ 19 เม.ย. 2018 6:37 pm โดย Patcharanan.0399
Q - import ฐานข้อมูลมาแต่ Error
โดย Parichat พฤ 19 เม.ย. 2018 5:55 pm บอร์ด SQL - Database
2
41
พฤ 19 เม.ย. 2018 6:43 pm โดย Parichat
ทำไมต้องมี IPv6 ....?
โดย Patcharanan.0399 พฤ 19 เม.ย. 2018 3:04 pm บอร์ด Share Knowledge
0
34
พฤ 19 เม.ย. 2018 3:04 pm โดย Patcharanan.0399
ต้องการใส่เสียงลงใน application
โดย Oley Rujisak พฤ 19 เม.ย. 2018 1:12 pm บอร์ด Mobile Application Developing- Android, iOS
0
24
พฤ 19 เม.ย. 2018 1:12 pm โดย Oley Rujisak
มาแล้ว Joomla 3.8.7 อัพเดทล่าสุด แก้ไข Bug ต่างๆ และปรับปรุงระบบให้ดีขึ้น
โดย tsukasaz พฤ 19 เม.ย. 2018 11:09 am บอร์ด PHP News
0
34
พฤ 19 เม.ย. 2018 11:09 am โดย tsukasaz
3-way Handshake (ทรีเวย์ แฮนเชค)คืออะไร
โดย Patcharanan.0399 พ 18 เม.ย. 2018 6:04 pm บอร์ด Share Knowledge
0
34
พ 18 เม.ย. 2018 6:04 pm โดย Patcharanan.0399
TCP (ทีซีพี) และ UDP (ยูดีพี) แตกต่างกันอย่างไร
โดย Patcharanan.0399 พ 18 เม.ย. 2018 5:46 pm บอร์ด Share Knowledge
1
51
พฤ 19 เม.ย. 2018 3:50 am โดย mindphp
ICMP Protocol (ไอซีเอ็มพี โปรโตคอล) คืออะไร
โดย Patcharanan.0399 พ 18 เม.ย. 2018 5:24 pm บอร์ด Share Knowledge
0
29
พ 18 เม.ย. 2018 5:24 pm โดย Patcharanan.0399
ไม่สามารถติดตั้ง selenium v.2.9.1 ได้
โดย Patcharanan.0399 พ 18 เม.ย. 2018 4:35 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
7
62
พฤ 19 เม.ย. 2018 3:45 am โดย mindphp