Devdit
 

PHP ดึงและแสดงข้อมูลจากฐานข้อมูล แบบเชิงวัตถุ (OOP)

2.1K

สอนเขียนโปรแกรมดึงและแสดงข้อมูลจากฐานข้อมูลแบบเชิงวัตถุ (OOP) ด้วยภาษา PHP ร่วมกับฐานข้อมูล MySQL ด้วยคำสั่ง mysqli สามารถเขียนโปรแกรมได้ดังนี้

 

1. สร้างฐานข้อมูล (Database) ชื่อ db_example

 

2. รันคำสั่ง SQL ด้านล่างเพื่อสร้างตารางข้อมูลชื่อ product

CREATE TABLE product (
id int(11) NOT NULL AUTO_INCREMENT,
title char(255) NOT NULL,
price int(11) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO product (id, title, price) VALUES
(NULL, 'ยางลบ', 50),
(NULL, 'ดินสอ', 40),
(NULL, 'ปากกา', 80),
(NULL, 'กางเกง', 90),
(NULL, 'เสื้อผ้า', 100)

 

3. เชื่อมต่อฐานข้อมูล

$conn = new mysqli("localhost", "root", "", "db_example");
if ($conn->connect_errno) {
    echo "ไม่สามารถเชื่อมต่อฐานข้อมูลได้เพราะ ".$mysqli->connect_error;
}
$conn->query( "SET NAMES UTF8" );

 

4. เขียนโปรแกรมแสดงข้อมูลจากฐานข้อมูลแบบ OOP

$sql = " SELECT * FROM product ";
$q = $conn->query( $sql );
while( $f = $q->fetch_assoc() ) {
    echo $f['id']." - ".$f['title']." - ".$f['price']."<br/>";
}

$conn->close();

1. สร้างตัวแปร $sql เก็บคำสั่ง SQL เพื่อแสดงข้อมูลทั้งหมดในตาราง product

2. สร้างตัวแปร $q เก็บการประมวลผลคำสั่ง SQL

3. ใช้คำสั่ง fetch_assoc เพื่อดึงข้อมูลจากตัวแปร $q แล้วส่งต่อให้ตัวแปร $f เพื่อนำไปแสดง โดยใช้ while loop ในการวนข้อมูล

4. ภายในวงเล็บใช้คำสั่ง echo เพื่อพิมพ์ข้อมูล id, title และ price ออกมา

 

ผลลัพธ์

5 - หนังสือ - 100
6 - หนังสือ - 100
7 - ยางลบ - 50
8 - ดินสอ - 40

 

ตัวอย่าง โปรแกรมแบบเต็ม

<?php
    $conn = new mysqli("localhost", "root", "", "db_example");
    if ($conn->connect_errno) {
        echo "ไม่สามารถเชื่อมต่อฐานข้อมูลได้เพราะ ".$mysqli->connect_error;
    }
    $conn->query( "SET NAMES UTF8" );

    $sql = " SELECT * FROM product ";
    $q = $conn->query( $sql );
    while( $f = $q->fetch_assoc() ) {
        echo $f['id']." - ".$f['title']." - ".$f['price']."<br/>";
    }

    $conn->close();
?>
แก้ไข 3 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ