Devdit
 

วิธีเพิ่มข้อมูลแบบหลายแถวข้อมูลพร้อมกัน PHP + MySQL โดยใช้ mysqli

3.1K

บทความนี้สอนวิธีการเพิ่มข้อมูล (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 );
?>
แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ