สวัสดีครับในบทความนี้ผมจะมาแนะนำเรื่องการใช้ PHP ร่วมกับ ฐานข้อมูล MySQL เช่นการ query ข้อมูลออกมาแสดง เป็นต้น ตัวอย่างในบทความนี้จะเป็นการยกตัวอย่างการแสดงข้อมูลบทความจากตารางที่ชื่อ articles มาแสดงในไฟล์ที่ชื่อ articles.php
ดังนั้นในไฟล์ articles.php ที่เราต้องการให้ข้อมูลมาแสดง เราก็จะเพิ่ม code ส่วนแรกเข้าไปนั้นก็คือ การเชื่อมต่อ PHP กับ MySQL
เราสามารถเชื่อมต่อ PHP กับ MySQL โดยใช้ function ชื่อ mysqli_connect(); โดย จำเป็นต้องใส่ parameters เข้าไปด้วย ได้แก่
$db = mysqli_connect('localhost', 'test', 'test123', 'testdb');
หากการเชื่อมต่อ MySQL ไม่สมบูรณ์ จะให้ PHP แสดงข้อผิดพลาด และหยุดทำงาน จะต้องเพิ่มบรรทัดดังต่อไปนี้เข้าไป
if(mysqli_connect_errno()) {
echo mysqli_connect_error();
die(); //เพื่อหยุดการทำงาน
}
เมื่อกำหนด $db แล้ว เราจึงจะสามารถนำตัวแปร ดังกล่าว อ้างอิงไปหา MySQL ได้ และสามารถใช้ส่งคำสั่ง MySQL เพื่อดำเนินการต่างๆ ได้
ตัวแปรอาจถูกเก็บแยกเป็นอีกไฟล์ แล้ว include หรือ require ไฟล์ดังกล่าวเข้ามา ก็จะได้ข้อมูลตัวแปรต่างๆ ที่ประกาศไว้ในไฟล์นั้นมาด้วย เช่น
เก็บ code ส่วนที่ประกาศตัวแปร $db แยกไว้ในไฟล์ที่ชื่อ database.php ดังนั้นในไฟล์ articles.php หากต้องการเข้าถึงตัวแปร $db จำเป็นจะต้องใช้คำสั่ง include หรือ require ดังนี้ (ต่างกันที่ require จะแสดง Fatal errors แต่ include จะแสดงแค่ warning errors)
include 'database.php';
//หรือ
require 'database.php';
จากโจทย์หากต้องการแสดงข้อมูล title, contents, img จากตาราง articles ก็จะใช้ function mysqli_query(); เพื่อ query คำสั่ง MySQL ดังตัวอย่างนี้
$result = mysqli_query($db, "SELECT title, contents, img FROM articles");
if ($result) {
//ทำงาน
}
หรือจะเขียนแบบนี้ก็ได้
if ($result = mysqli_query($db, "SELECT title, contents, img FROM articles")) {
//ทำงาน
}
เราจะแสดงผลข้อมูลออกจากตัวแปร $result ได้ โดยใช้คำสั่งดังนี้
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo $row['title']."<br>";
echo $row['contents']."<br>";
echo $row['img']."<br>"
}
เราสามารถนำไปผสมผสานกับ HTML ได้ ตัวอย่างเช่นการปรับใช้กับ Table ดังนี้
<table>
<tr>
<th>หัวข้อ</th>
<th>เนื้อหา</th>
<th>รูปภาพ</th>
</tr>
<?php
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
?>
<tr>
<td><?=$row['title']?></td>
<td><?=$row['contents']?></td>
<td><?=$row['img']?></td>
</tr>
<?php
}
?>
</table>
เมื่อไม่มีการส่งคำสั่งอีกแล้ว ควรปิดการเชื่อมต่อด้วยคำสั่ง mysqli_close(); และ Free Memory ด้วย mysqli_free_result();
mysqli_free_result($result);
mysqli_close($db);
อ้างอิง: www.w3schools.com
