ภาษา PHP เบื้องต้น (3) เชื่อมต่อ MySQL

Web Development 06 กรกฎาคม พ.ศ. 2566 393
Home / Articles / 56

สวัสดีครับในบทความนี้ผมจะมาแนะนำเรื่องการใช้  PHP ร่วมกับ ฐานข้อมูล MySQL เช่นการ query ข้อมูลออกมาแสดง เป็นต้น ตัวอย่างในบทความนี้จะเป็นการยกตัวอย่างการแสดงข้อมูลบทความจากตารางที่ชื่อ articles มาแสดงในไฟล์ที่ชื่อ articles.php

ดังนั้นในไฟล์ articles.php ที่เราต้องการให้ข้อมูลมาแสดง เราก็จะเพิ่ม code ส่วนแรกเข้าไปนั้นก็คือ การเชื่อมต่อ PHP กับ MySQL

เชื่อมต่อ PHP กับฐานข้อมูล

เราสามารถเชื่อมต่อ PHP กับ MySQL โดยใช้ function ชื่อ mysqli_connect(); โดย จำเป็นต้องใส่ parameters เข้าไปด้วย ได้แก่

  • Host (ในตัวอย่างคือ localhost)
  • MySQL Username (ในตัวอย่างคือ test)
  • MySQL Password (ในตัวอย่างคือ test123)
  • MySQL Database: (ในตัวอย่างคือ testdb)
$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';

ส่งคำสั่งไปหา MySQL

จากโจทย์หากต้องการแสดงข้อมูล 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

Profile Picture.
  • Name (Pen name): Sunny Jirakit (Sunny420x)
  • Study: Bachelor Degree of Computer Science from Chiang Mai Rajabhat University
  • Personality: Architect (INTJ-T)
  • Experience: JavaScript,  Angular.js, React.js, Next.js  Express.js, Unity C#, Socket.io