ให้เรตสมาชิก: 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 This email address is being protected from spambots. You need JavaScript enabled to view it. johnsmith
2 Magda Hellman This email address is being protected from spambots. You need JavaScript enabled to view it. magdah
3 Yvonne de Gaulle This email address is being protected from spambots. You need JavaScript enabled to view it. ydegaulle

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

ผลที่ได้จะเป็น ตัวแปร Array ซึ่ง สามารถจะเอาไปใช้ได้เลยโดยอ้าง index เป็นเลขแถว
Array ( [0] => 1 [1] => John Smith [2] => This email address is being protected from spambots. You need JavaScript enabled to view it. [3] => johnsmith )
 
7.loadObject() / loadObjectList()
 
คือการโหลด คอลัม ต่างๆใน ตารางนั้นๆ ซึ่งถ้าใช้ loadObjectList() จะเป็นการเอาทุกข้อมูลใน คอลัมที่เราอ้างใน Index ของ Array 
 
ตัวอย่าง
id name email username
1 John Smith This email address is being protected from spambots. You need JavaScript enabled to view it. johnsmith
2 Magda Hellman This email address is being protected from spambots. You need JavaScript enabled to view it. magdah
3 Yvonne de Gaulle This email address is being protected from spambots. You need JavaScript enabled to view it. ydegaulle

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

Array (
[0] => Array ( [id] => 1 [name] => John Smith [email] => This email address is being protected from spambots. You need JavaScript enabled to view it. [username] => johnsmith )
[1] => Array ( [id] => 2 [name] => Magda Hellman [email] => This email address is being protected from spambots. You need JavaScript enabled to view it. [username] => magdah )
[2] => Array ( [id] => 3 [name] => Yvonne de Gaulle [email] => This email address is being protected from spambots. You need JavaScript enabled to view it. [username] => ydegaulle )
) 
นี้เป็นผลลัพท์จากการใช้ loadObjectList(); จึงได้ ข้อมูลทั้งหมดออกมา แต่ถ้า ไม่มีคำว่า List จะออกมาแค่ข้อมูลเดียว
 
นี้เป็นแค่ข้อมูลบางส่วน ถ้าใครต้องการศึกษาเพิ่มเติม สามารถเข้าไปดูได้ที่ http://docs.joomla.org/Accessing_the_database_using_JDatabase
 ซึ่งเป็นข้อมูลภาษาอังกฤษ สามารถดูได้ละเอียดกว่านะครับ
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
MOD_MTB_NEWS_RECENT
ภาพนามสกุล heic image คืออะไรแล้วสร้างด้วยโปรแกรมอะไรค่ะ
โดย thatsawan อ 26 ก.ย. 2017 11:36 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
11
อ 26 ก.ย. 2017 11:36 pm โดย thatsawan
ภาพนามสกุล heic image คืออะไรแล้วสร้างด้วยโปรแกรมอะไรค่ะ
โดย thatsawan อ 26 ก.ย. 2017 11:35 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
15
อ 26 ก.ย. 2017 11:35 pm โดย thatsawan
ดาวน์โหลด AtomyMaxsite CMS เวอร์ชั่นล่าสุด
โดย ayeweb6AFJV อ 26 ก.ย. 2017 11:13 pm บอร์ด Free PHP Code Download script
0
8
อ 26 ก.ย. 2017 11:13 pm โดย ayeweb6AFJV
สอบถามโปรแกรม CD ค่ะ
โดย บุคคลทั่วไป อ 26 ก.ย. 2017 1:59 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
0
13
อ 26 ก.ย. 2017 1:59 pm โดย บุคคลทั่วไป
สอบถามเรื่อง getListFooter() ของ Joomla
โดย Minanda อ 26 ก.ย. 2017 1:18 pm บอร์ด Joomla Development
2
20
อ 26 ก.ย. 2017 1:18 pm โดย Minanda
Python Decorators
โดย nuattawoot อ 26 ก.ย. 2017 11:24 am บอร์ด Programming - C/C++ & java & Python
2
26
อ 26 ก.ย. 2017 11:24 am โดย nuattawoot
สรุป 13 ข้อ สาระสำคัญของ พ.ร.บ.คอมพิวเตอร์ 60 มีผลบังคับใช้แล้ว
โดย M029 อ 26 ก.ย. 2017 11:22 am บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
27
อ 26 ก.ย. 2017 11:22 am โดย M029
แค่ดู Keyboard ก็บอกได้ว่าเป็นของ "โปรแกรมเมอร์" หรือ "เกมเมอร์"
โดย Before Dong อ 26 ก.ย. 2017 10:34 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
37
อ 26 ก.ย. 2017 10:34 am โดย Before Dong
ฟรี Cloud SSD โฮสติ้ง โดย นกโฮสติ้ง
โดย nokhosting อ 26 ก.ย. 2017 9:59 am บอร์ด Web Hosting Review - Free Host Share Host VPS
0
13
อ 26 ก.ย. 2017 9:59 am โดย nokhosting
new project
โดย บุคคลทั่วไป จ 25 ก.ย. 2017 7:54 pm บอร์ด Programming - PHP
1
21
จ 25 ก.ย. 2017 7:54 pm โดย บุคคลทั่วไป
วิธี debug pl sql บน toad
โดย jataz2 จ 25 ก.ย. 2017 5:19 pm บอร์ด SQL - Database
0
12
จ 25 ก.ย. 2017 5:19 pm โดย jataz2
Font-End กับ Back-End
โดย Before Dong จ 25 ก.ย. 2017 10:22 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
35
จ 25 ก.ย. 2017 10:22 am โดย Before Dong
ทำไมเข้าเมลตัวเองไม่ได้
โดย เอ็มกับจ๋า อ 24 ก.ย. 2017 9:41 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
16
อ 24 ก.ย. 2017 9:41 pm โดย เอ็มกับจ๋า
สอบถามเกี่ยวกับ task
โดย Minanda อ 24 ก.ย. 2017 6:11 pm บอร์ด Joomla Development
1
42
อ 24 ก.ย. 2017 6:11 pm โดย Minanda
อยากเป็นแฮกเกอร์
โดย ชื่อ ต้า ส 23 ก.ย. 2017 6:38 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
38
ส 23 ก.ย. 2017 6:38 pm โดย ชื่อ ต้า
อยากเป็นแฮกเกอร์ แค่ไม่รู้อะไรเลย
โดย ชื่อ ต้า ส 23 ก.ย. 2017 6:37 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
53
ส 23 ก.ย. 2017 6:37 pm โดย toonytoony2004
ฉันมีความกังวนในความเป็นส่วนตัว
โดย สิทธิ์ ของหัวจัย ศ 22 ก.ย. 2017 10:40 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
13
ศ 22 ก.ย. 2017 10:40 pm โดย สิทธิ์ ของหัวจัย
เฟสให้ยืนยันตัวตนด้วยรูปเพื่อนในเฟสแต่หนูจำไม่ได้จากนั้นก็เข้าไม่ได้เลยค๊ะ
โดย บุคคลทั่วไป ศ 22 ก.ย. 2017 1:25 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
25
ศ 22 ก.ย. 2017 1:25 pm โดย บุคคลทั่วไป
สีผิวของ โปรแกรมเมอร์ และอาชีพต่างๆในฤดูร้อน
โดย Before Dong ศ 22 ก.ย. 2017 10:10 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
55
ศ 22 ก.ย. 2017 10:10 am โดย Before Dong
เรียกใช้คำสั่งในการวาดสี่เหลี่ยมและวงกลม
โดย Ik Kat พฤ 21 ก.ย. 2017 7:28 pm บอร์ด JavaScript & Jquery Ajax
0
32
พฤ 21 ก.ย. 2017 7:28 pm โดย Ik Kat