บทความนี้สอนวิธีการเพิ่มข้อมูล (INSERT INTO) แบบหลายแถวข้อมูลพร้อมกัน (Multiple Rows) ด้วยคำสั่ง SQL ชุดเดียว ด้วยภาษา PHP ร่วมกับฐานข้อมูล MySQL ด้วยชุดคำสั่ง mysqli โดยมีขั้นตอนวิธีการเขียนโปรแกรมดังนี้
1. สร้างฐานข้อมูล (Database) ชื่อ db_example
2. รันคำสั่ง SQL ด้านล่างเพื่อสร้างตารางข้อมูลชื่อ fruit
CREATE TABLE fruit (
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;
3. เขียนคำสั่ง PHP เชื่อมต่อฐานข้อมูล MySQL
$conn = mysqli_connect("localhost", "root", "", "db_example");
mysqli_query( $conn, "SET NAMES UTF8" );
4. สร้างชุดคำสั่ง INSERT สำหรับเพิ่มข้อมูลลงในตาราง fruit แบบหลายข้อมูลในที่เดียว
$sql = "
INSERT INTO fruit
(id, title, price)
VALUES
(NULL, 'apple', 90),
(NULL, 'banana', 90),
(NULL, 'orange', 90)
";
mysqli_query( $conn, $sql );
$row = mysqli_affected_rows( $conn );
if( $row > 0 ) {
echo "เพิ่มข้อมูลสำเร็จทั้งหมด {$row} แถว";
} else {
echo "ไม่สามารถเพิ่มข้อมูลได้";
}
mysqli_close( $conn );
4.1 สร้างตัวแปร $sql เก็บคำสั่ง INSERT INTO ของภาษา SQL โดยส่วนของ VALUES มีการกำหนดข้อมูลมากกว่า 1 ชุดข้อมูล โดยใช้อักษร , เพื่อคั่นแต่ละชุดข้อมูล
4.2 ประมวลผลคำสั่ง SQL ด้วยคำสั่ง mysqli_query
4.3 สร้างตัวแปร $num เก็บค่าแถวข้อมูลใหม่ที่ถูกเพิ่มจากคำสั่ง mysqli_affected_rows
4.4 เช็คตัวแปร $num หากมีค่ามากกว่า 0 แปลว่าสามารถเพิ่มข้อมูลได้ พร้อมกับแสดงจำนวนแถวข้อมูลที่ถูกเพิ่มออกสู่หน้าจอ
4.5 ปิดการเชื่อมต่อฐานข้อมูล MySQL ด้วยคำสั่ง mysqli_close
ตัวอย่าง โปรแกรมแบบเต็ม
<?php
// เชื่อมต่อฐานข้อมูล
$conn = mysqli_connect("localhost", "root", "", "db_example");
mysqli_query( $conn, "SET NAMES UTF8" );
$sql = "
INSERT INTO fruit
(id, title, price)
VALUES
(NULL, 'apple', 90),
(NULL, 'banana', 90),
(NULL, 'orange', 90)
";
mysqli_query( $conn, $sql );
$row = mysqli_affected_rows( $conn );
if( $row > 0 ) {
echo "เพิ่มข้อมูลสำเร็จทั้งหมด {$row} แถว";
} else {
echo "ไม่สามารถเพิ่มข้อมูลได้";
}
// ยกเลิกการเชื่อมต่อฐานข้อมูล
mysqli_close( $conn );
?>