Latest web development tutorials
×

PHP หลักสูตร

PHP หลักสูตร PHP แนะนำโดยย่อ PHP ติดตั้ง PHP ไวยากรณ์ PHP ตัวแปร PHP echo/print PHP ชนิดข้อมูล PHP คงที่ PHP เชือก PHP ผู้ประกอบการ PHP If...Else PHP Switch PHP แถว PHP เรียงลำดับอาร์เรย์ PHP Superglobals PHP While การไหลเวียน PHP For การไหลเวียน PHP ฟังก์ชัน PHP ตัวแปรเมจิก PHP namespaces PHP เชิงวัตถุ

PHP ฟอร์ม

PHP ฟอร์ม PHP รูปแบบการตรวจสอบสิทธิ์ PHP ฟอร์ม - ฟิลด์ที่จำเป็น PHP ฟอร์ม - อีเมลยืนยันและ URL PHP ตัวอย่างสมบูรณ์แบบ PHP $_GET ตัวแปร PHP $_POST ตัวแปร

PHP การสอนที่ทันสมัย

PHP อาร์เรย์หลายมิติ PHP วันที่ PHP บรรจุ PHP ไฟล์ PHP อัปโหลดไฟล์ PHP Cookie PHP Session PHP E-mail PHP ความปลอดภัย E-mail PHP Error PHP Exception PHP กรอง PHP กรองขั้นสูง PHP JSON

PHP 7 คุณสมบัติใหม่

PHP 7 คุณสมบัติใหม่

PHP ฐานข้อมูล

PHP MySQL แนะนำโดยย่อ PHP MySQL สัมพันธ์ PHP MySQL การสร้างฐานข้อมูล PHP MySQL สร้างตารางข้อมูล PHP MySQL แทรกข้อมูล PHP MySQL ใส่ข้อมูลหลาย PHP MySQL งบเตรียม PHP MySQL อ่านข้อมูล PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX แนะนำโดยย่อ AJAX PHP AJAX ฐานข้อมูล AJAX XML AJAX ค้นหาแบบ Real-time AJAX RSS Reader AJAX โหวต

PHP คู่มืออ้างอิง

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP การประมวลผลภาพ PHP RESTful

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 ( 'จอห์น' 'กวาง' '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'แมรี่' 'โม' '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'จูลี่', 'Dooley', '[email protected]') ";

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

$ Conn-> close ();
?>

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

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

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

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

$ Sql ​​= "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'จอห์น' 'กวาง' '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'แมรี่' 'โม' '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'จูลี่', 'Dooley', '[email protected]') ";

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

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 ( 'จอห์น' 'กวาง' '[email protected]') ");
$ Conn-> exec ( "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'แมรี่' 'โม' '[email protected]') ");
$ Conn-> exec ( "INSERT INTO MyGuests (ชื่อ, นามสกุล, อีเมล์)
VALUES ( 'จูลี่', 'Dooley', '[email protected]') ");

// กระทำการทำธุรกรรม
$ Conn-> กระทำ ();
echo "บันทึกใหม่จะถูกแทรกประสบความสำเร็จ";
}
catch (PDOException $ E)
{
// ถ้าย้อนกลับล้มเหลว
$ Conn-> ย้อนกลับ ();
.. 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, $ นามสกุล, อีเมล $);

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

$ นามสกุล = 'แมรี่';
$ นามสกุล = 'โม';
$ อีเมล์ = '[email protected]';
mysqli_stmt_execute ($ stmt);

$ นามสกุล = 'จูลี่';
$ นามสกุล = 'Dooley';
$ อีเมล์ = '[email protected]';
mysqli_stmt_execute ($ stmt);
}
}
?>

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

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

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

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

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

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

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