Joomla เป็นระบบจัดการเนื้อหาที่มีประสิทธิภาพที่ช่วยให้เจ้าของเว็บไซต์และนักพัฒนาสามารถสร้างและจัดการเนื้อหาเว็บได้อย่างง่ายดาย มีคุณสมบัติและฟังก์ชันการทำงานที่หลากหลายที่ช่วยให้ผู้ใช้สามารถปรับแต่งและขยายระบบให้เหมาะกับความต้องการเฉพาะของตนได้ ลักษณะที่สำคัญที่สุดประการหนึ่งของการทำงานของ Joomla คือการรวมเข้ากับฐานข้อมูล และฐานข้อมูล คือ คอลเลกชันที่มีโครงสร้างของdataที่สามารถใช้เพื่อจัดเก็บและเรียกใช้ข้อมูล ใน Joomla ฐานข้อมูลจะถูกใช้เพื่อจัดเก็บเนื้อหาทั้งหมดของเว็บไซต์ รวมถึงบทความ เมนู โปรไฟล์ผู้ใช้ และข้อมูลอื่นๆ ฐานข้อมูลยังใช้เพื่อจัดเก็บการตั้งค่าสำหรับการติดตั้ง Joomla รวมถึงรายละเอียดการเชื่อมต่อฐานข้อมูล

ในบทความบทความนี้จะมาแนะนวิธีการทำเชื่อมต่อ Database ในตัว Joomla
วิธีการทำ Connect Database ในตัว Joomla

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

1. Connect Database 


ในการเชื่อมต่อ Database ให้ใช้คำสั่ง 

$db = Joomla\CMS\Factory::getDbo(); 

// หรือ

use Joomla\CMS\Factory;

$db = Factory::getDbo();

ถ้าเทียบกับ PHP แล้วก็เป็นคำสั่ง ดังนี้

$con = mysqli_connect("localhost","root","password"); 

 

2. Code SQL


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

$db->quoteName('ชื่อฟิลด์')
// หรือแบบตัวย่อ
$db->qn('ชื่อฟิลด์')

ในส่วนข้อมูลจะเขียนฟังก์ชันโค้ดดังนี้

$db->quote('ข้อมูล')
// หรือแบบย่อ
$db->q('ข้อมูล')

 

ตัวอย่าง วิธีการใช้งาน Code SQL
 
$db = Joomla\CMS\Factory::getDbo();
$query = $db->getQuery(true)
 ->select('*')
 ->from($db->qn('#__example_table'));
 ->where($db->qn('id') . ' = ' .  $db->q(100000));
 
ข้อควรระวัง ควรระวังเรื่องการเชื่อมคำเช่น . และ "" ให้ดี อย่าให้พลาด
 
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 [email protected] johnsmith
2 Magda Hellman [email protected] magdah
3 Yvonne de Gaulle [email protected] ydegaulle

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

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

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

Array (
[0] => Array ( [id] => 1 [name] => John Smith [email] => [email protected] [username] => johnsmith )
[1] => Array ( [id] => 2 [name] => Magda Hellman [email] => [email protected] [username] => magdah )
[2] => Array ( [id] => 3 [name] => Yvonne de Gaulle [email] => [email protected] [username] => ydegaulle )
) 
นี้เป็นผลลัพท์จากการใช้ loadObjectList(); จึงได้ ข้อมูลทั้งหมดออกมา แต่ถ้า ไม่มีคำว่า List จะออกมาแค่ข้อมูลเดียว
 
 
สรุป Joomla เป็นแพลตฟอร์มเว็บไซต์ที่ใช้ฐานข้อมูลในการจัดเก็บและจัดระเบียบเนื้อหาเว็บไซต์ ฐานข้อมูลเปรียบเสมือนตู้เก็บเอกสารดิจิทัลที่ Joomla ใช้เพื่อจัดการทุกอย่างบนเว็บไซต์ของคุณ เมื่อมีผู้เยี่ยมชมเว็บไซต์ Joomla  และเชื่อมต่อกับฐานข้อมูลเพื่อดึงเนื้อหาและแสดงบนเพจ การเชื่อมต่อนี้มีความสำคัญต่อการทำให้เว็บไซต์ของเราทำงานได้อย่างถูกต้อง และช่วยให้สร้างเพจแบบไดนามิกและโต้ตอบได้ซึ่งง่ายต่อการจัดการและปรับแต่ง โดยรวมแล้ว การรวม Joomla กับฐานข้อมูลเป็นสิ่งที่ทำให้ Joomla เป็นแพลตฟอร์มที่มีประสิทธิภาพและมีความยืดหยุ่นสำหรับการสร้างเว็บไซต์ ซึ่งในส่วนข้อมูลบางส่วน ถ้าใครต้องการศึกษาเพิ่มเติม
 
สามารถเข้าไปศึกษาได้ที่ ลิงก์ นี้เลย
 
 
อ้างอิง
รูปแบบการดึงข้อมูลจากฐานข้อมูลใน Joomla ,[ออนไลน์], เข้าถึงได้จาก https://www.mindphp.com/forums/viewtopic.php?t=45793
วิธีดึงข้อมูลจากฐานข้อมูลมาแสดงโชว์ ทำโมดูล Joomla ,[ออนไลน์], เข้าถึงได้จาก https://www.mindphp.com/forums/viewtopic.php?t=89570
Selecting data using JDatabase ,[ออนไลน์], เข้าถึงได้จาก https://docs.joomla.org/Selecting_data_using_JDatabase
 
 
 
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล
โดย witsarutt000 พฤ 14 มี.ค. 2024 4:07 pm บอร์ด SQL Knowledge
1
166
พฤ 14 มี.ค. 2024 5:44 pm โดย Sirayu View Topic SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล
PHP การเปลี่ยนแปลงที่สร้างปรากฏการณ์ในโลกของเว็บ
โดย witsarutt000 พฤ 14 มี.ค. 2024 11:17 am บอร์ด PHP Knowledge
0
125
พฤ 14 มี.ค. 2024 11:17 am โดย witsarutt000 View Topic PHP การเปลี่ยนแปลงที่สร้างปรากฏการณ์ในโลกของเว็บ
ปัญหา Harddisk ขึ้น 100% เวลาเซฟไฟล์ หรือภาพ จะค้่างที่หน้าแท๊บ Expolorer
โดย Thanavat_n พ 13 มี.ค. 2024 11:02 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
5
270
พ 13 มี.ค. 2024 1:34 pm โดย Thanavat_n View Topic ปัญหา Harddisk ขึ้น 100% เวลาเซฟไฟล์ หรือภาพ จะค้่างที่หน้าแท๊บ Expolorer
ตู้รองเท้า ไอเท็มวิเศษช่วยจัดระเบียบคอลเลกชันรองเท้าคู่โปรด
โดย @Foretoday อ 12 มี.ค. 2024 1:46 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
184
อ 12 มี.ค. 2024 1:46 pm โดย @Foretoday View Topic ตู้รองเท้า ไอเท็มวิเศษช่วยจัดระเบียบคอลเลกชันรองเท้าคู่โปรด
แนะนำสถานที่น่าเที่ยวในจังหวัดชุมพรพร้อมวิธีการเดินทาง
โดย witsarutt000 จ 11 มี.ค. 2024 6:14 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
142
จ 11 มี.ค. 2024 6:14 pm โดย witsarutt000 View Topic แนะนำสถานที่น่าเที่ยวในจังหวัดชุมพรพร้อมวิธีการเดินทาง
ย้าย VM ข้าม Host ด้วย scp กรณีศึกษา Vmware ESXI
โดย mindphp อ 10 มี.ค. 2024 4:36 am บอร์ด Linux - Web Server
0
239
อ 10 มี.ค. 2024 4:36 am โดย mindphp View Topic ย้าย VM ข้าม Host ด้วย scp กรณีศึกษา Vmware ESXI
IP และ vpn (VMware)
โดย ballmykids อ 10 มี.ค. 2024 2:35 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
203
จ 11 มี.ค. 2024 3:19 pm โดย ballmykids View Topic IP และ vpn (VMware)
แบบนี้ต้องทำยังไง ในกรณีที่ Server เดิมเราได้ทำการ Raid 1 กับ HDD 2 ลูกแรกแล้ว
โดย Anonymous ศ 08 มี.ค. 2024 7:02 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
166
ศ 08 มี.ค. 2024 8:12 pm โดย mindphp View Topic แบบนี้ต้องทำยังไง ในกรณีที่ Server เดิมเราได้ทำการ Raid 1 กับ HDD 2 ลูกแรกแล้ว