บทช่วยสอน PHP MySQL แทรกข้อมูลหลาย ๆ ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ ใช้ MySQLi และ PDO MySQL เพื่อแทรกข้อมูลหลาย ๆ,ตัวอย่าง (MySQLi - Object Oriented),ตัวอย่าง (MySQLi - ที่มุ่งเน้นกระบวนการ),ตัวอย่างของ (PDO),ใช้งบเตรียม,ตัวอย่าง (MySQLi ใช้งบเตรียม),

PHP MySQL แทรกข้อมูลหลาย ๆ

ใช้ MySQLi และ PDO MySQL เพื่อแทรกข้อมูลหลาย ๆ

mysqli_multi_query ฟังก์ชั่น () จะใช้ในการรันคำสั่งหลาย ๆ

ตัวอย่างต่อไปนี้จะ "MyGuests" ตารางเพิ่มอีกสามระเบียนใหม่:

ตัวอย่าง (MySQLi - Object Oriented)

<php?
$ Servername = "localhost";
$ username = "ชื่อผู้ใช้";
รหัสผ่าน $ = "รหัสผ่าน";
$ Dbname = "myDB";

// สร้างการเชื่อมโยง
$ Conn = mysqli ใหม่ ($ ServerName, $ ชื่อผู้ใช้รหัสผ่าน $, $ dbname);
// ตรวจสอบลิงก์
ถ้า ($ conn-> connect_error) {
ตาย ( "การเชื่อมต่อล้มเหลว:" $ conn-> connect_error.);
}

$ Sql ​​= "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'จอห์น' 'กวาง' 'john@example.com'); ";
$ Sql. = "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'แมรี่' 'โม' 'mary@example.com'); ";
$ Sql. = "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'จูลี่', 'Dooley', 'julie@example.com') ";

ถ้า ($ conn-> multi_query ($ SQL) === จริง) {
echo "บันทึกใหม่จะถูกแทรกประสบความสำเร็จ";
} else {
. ก้อง "ข้อผิดพลาด:" $ SQL "<br>" $ conn-> ข้อผิดพลาด; th
}

$ Conn-> close ();
?>

หมายเหตุ โปรดทราบว่าแต่ละคำสั่ง SQL จะต้องคั่นด้วยเครื่องหมายอัฒภาค

ตัวอย่าง (MySQLi - ที่มุ่งเน้นกระบวนการ)

<php?
$ Servername = "localhost";
$ username = "ชื่อผู้ใช้";
รหัสผ่าน $ = "รหัสผ่าน";
$ Dbname = "myDB";

// สร้างการเชื่อมโยง
$ Conn = mysqli_connect ($ ServerName, $ ชื่อผู้ใช้รหัสผ่าน $, $ dbname);
// ตรวจสอบลิงก์
ถ้า (! $ Conn) {
ตาย ( "การเชื่อมต่อล้มเหลว:" mysqli_connect_error ().);
}

$ Sql ​​= "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'จอห์น' 'กวาง' 'john@example.com'); ";
$ Sql. = "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'แมรี่' 'โม' 'mary@example.com'); ";
$ Sql. = "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'จูลี่', 'Dooley', 'julie@example.com') ";

ถ้า (mysqli_multi_query ($ Conn, $ SQL)) {
echo "บันทึกใหม่จะถูกแทรกประสบความสำเร็จ";
} else {
. ก้อง "ข้อผิดพลาด:" $ SQL "<br>" mysqli_error ($ Conn); th
}

mysqli_close ($ Conn);
?>


ตัวอย่างของ (PDO)

<php?
$ Servername = "localhost";
$ username = "ชื่อผู้ใช้";
รหัสผ่าน $ = "รหัสผ่าน";
$ Dbname = "myDBPDO";

try {
$ Conn = ใหม่ PDO ( "MySQL: host = $ servername; dbname = $ dbname", $ ชื่อผู้ใช้รหัสผ่าน $);
// การตั้งค่าโหมด PDO ข้อผิดพลาดในการยกเว้น
$ Conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);

// เริ่มต้นการทำธุรกรรม
$ Conn-> beginTransaction ();
// คำสั่ง SQL
$ Conn-> exec ( "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'จอห์น' 'กวาง' 'john@example.com') ");
$ Conn-> exec ( "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'แมรี่' 'โม' 'mary@example.com') ");
$ Conn-> exec ( "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'จูลี่', 'Dooley', 'julie@example.com') ");

// กระทำการทำธุรกรรม
$ Conn-> กระทำ ();
echo "บันทึกใหม่จะถูกแทรกประสบความสำเร็จ";
}
catch (PDOException $ E)
{
// ถ้าย้อนกลับล้มเหลว
$ Conn-> ย้อนกลับ ();
th echo $ SQL "<br>" $ E-> getMessage ();
}

$ Conn = null;
?>



ใช้งบเตรียม

ขยาย mysqli ให้เป็นวิธีที่สองที่จะแทรกงบ

เราเตรียมงบและพารามิเตอร์ที่ถูกผูกไว้

ขยาย MySQL สามารถส่งข้อมูลได้โดยไม่ต้องมีคำสั่งหรือแบบสอบถามไปยังฐานข้อมูลของ MySQL คุณสามารถเชื่อมโยงหรือ "ผูก" ตัวแปรคอลัมน์

ตัวอย่าง (MySQLi ใช้งบเตรียม)

<php?
$ Servername = "localhost";
$ username = "ชื่อผู้ใช้";
รหัสผ่าน $ = "รหัสผ่าน";
$ Dbname = "myDB";

// สร้างการเชื่อมต่อ
$ Conn = mysqli ใหม่ ($ ServerName, $ ชื่อผู้ใช้รหัสผ่าน $, $ dbname);
// ทดสอบการเชื่อมต่อ
ถ้า ($ conn-> connect_error) {
ตาย ( "การเชื่อมต่อล้มเหลว:" $ conn-> connect_error.);
} else {
$ Sql ​​= "INSERT INTO MyGuests VALUES (,, ???)";

// การ mysqli_stmt_prepare () วัตถุคำสั่งเริ่มต้น
$ Stmt = mysqli_stmt_init ($ Conn);

// งบเตรียม
ถ้า (mysqli_stmt_prepare ($ stmt, $ SQL)) {
// พารามิเตอร์ผูก
mysqli_stmt_bind_param ($ stmt 'SSS', $ FirstName, $ นามสกุล, อีเมล $);

// ตั้งค่าพารามิเตอร์และดำเนินการ
$ นามสกุล = 'จอห์น';
$ นามสกุล = 'กวาง';
$ อีเมล์ = 'john@example.com';
mysqli_stmt_execute ($ stmt);

$ นามสกุล = 'แมรี่';
$ นามสกุล = 'โม';
$ อีเมล์ = 'mary@example.com';
mysqli_stmt_execute ($ stmt);

$ นามสกุล = 'จูลี่';
$ นามสกุล = 'Dooley';
$ อีเมล์ = 'julie@example.com';
mysqli_stmt_execute ($ stmt);
}
}
?>

เราสามารถมองเห็นในตัวอย่างข้างต้นโดยใช้แบบแยกส่วนการจัดการกับปัญหาที่เกิดขึ้น เราสามารถสร้างบล็อกของรหัสสำหรับการอ่านและการจัดการง่ายขึ้น

หมายเหตุพารามิเตอร์ที่ถูกผูกไว้ ลองดูที่ mysqli_stmt_bind_param () รหัสสินค้า:

mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);

ข้อโต้แย้งผูกพันกับแบบสอบถามและส่งผ่านพารามิเตอร์ไปยังฐานข้อมูล พารามิเตอร์ที่สองคือ "SSS" รายการต่อไปนี้แสดงให้เห็นประเภทของพารามิเตอร์ อักขระบอกอาร์กิวเมนต์ MySQL เป็นสตริง

มันอาจจะเป็นพารามิเตอร์ทั้งสี่ต่อไปนี้:

  • I - จำนวนเต็ม
  • D - ความแม่นยำสองจำนวนจุดลอยตัว
  • s - สตริง
  • B - ค่าบูลีน

ประเภทแต่ละพารามิเตอร์ต้องระบุเพื่อให้แน่ใจว่าการรักษาความปลอดภัยข้อมูล ตามประเภทของการตัดสินสามารถลดความเสี่ยงของช่องโหว่ฉีดของ SQL

PHP MySQL แทรกข้อมูลหลาย ๆ
10/30