แทรกข้อมูลลงใน MySQL โดยใช้ MySQLi และ PDO
หลังจากสร้างฐานข้อมูลและตารางแล้ว เราก็สามารถเพิ่มข้อมูลลงในตารางได้
ต่อไปนี้เป็นกฎไวยากรณ์บางประการ:
คำสั่งแบบสอบถาม SQL ใน PHP ต้องใช้เครื่องหมายคำพูด
ค่าสตริงในการสืบค้น SQL จะต้องถูกยกมา
ค่าตัวเลขไม่จำเป็นต้องมีเครื่องหมายคำพูด
ค่า NULL ไม่จำเป็นต้องมีเครื่องหมายคำพูด
โดยทั่วไปคำสั่ง INSERT INTO จะใช้เพื่อเพิ่มระเบียนใหม่ลงในตาราง MySQL:
แทรกลงใน table_name (column1, column2, column3,...)VALUES (value1, value2, value3,...)
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ SQL โปรดดูบทช่วยสอน SQL ของเรา
ในบทที่แล้ว เราได้สร้างตาราง "MyGuests" โดยมีฟิลด์ต่อไปนี้: "id", "firstname", "lastname", "email" และ "reg_date" ตอนนี้เรามาเริ่มเติมข้อมูลลงในตารางกันดีกว่า
| หมายเหตุ: หากคอลัมน์ถูกตั้งค่าเป็น AUTO_INCREMENT (เช่น คอลัมน์ "id") หรือ TIMESTAMP (เช่น คอลัมน์ "reg_date") เราไม่จำเป็นต้องระบุค่าในคำสั่งสืบค้น SQL เพราะ MySQL จะเพิ่มค่าโดยอัตโนมัติ ไปที่คอลัมน์ |
---|
ตัวอย่างต่อไปนี้เพิ่มระเบียนใหม่ลงในตาราง "MyGuests":
ตัวอย่าง (MySQLi - เชิงวัตถุ)
<?php $servername = " localhost " ; $username = " ชื่อ ผู้ใช้ " ; $password = " รหัสผ่าน " ; $ dbname = " myDB " ; $conn = ใหม่ mysqli ( $servername , $username , $password , $dbname ) ; // ตรวจจับการเชื่อมต่อ ถ้า ( $conn -> Connect_error ) - die ( " การเชื่อมต่อล้มเหลว: " . $ conn -> Connect_error ) ; $sql = " ใส่ลงใน MyGuests (ชื่อ นามสกุล อีเมล) ค่า ('John', 'Doe', '[email protected]' ) " ; ( $conn -> แบบสอบถาม ( $sql ) === TRUE ) - เสียงสะท้อน " แทรกบันทึกใหม่เรียบร้อย แล้ว " ; อื่น - เสียงสะท้อน " ข้อ ผิด พลาด : " . $ sql . " <br> " . $conn - > ปิด ( ) ; ตัวอย่าง (MySQLi - เน้นขั้นตอน)
<?php $servername = " localhost " ; $username = " ชื่อ ผู้ใช้ " ; $password = " รหัสผ่าน " ; $ dbname = " myDB " ; $conn = mysqli_connect ( $servername , $username , $password , $dbname ) ; // ตรวจจับการเชื่อมต่อ ถ้า ( ! $conn ) - die ( " การ
เชื่อม ต่อ
ล้ม เหลว: " . mysqli_connect_error ( ) ; $sql = " ใส่ลงใน MyGuests (ชื่อ นามสกุล อีเมล) ค่า ('John', 'Doe', '[email protected]' ) " ; ( mysqli_query ( $conn , $sql ) ) - เสียงสะท้อน " แทรกบันทึกใหม่เรียบร้อย แล้ว " ; อื่น - เสียงสะท้อน " ข้อ ผิด พลาด : " . $ sql . " <br> " . mysqli_close ( $ conn ) ; ตัวอย่าง (PDO)
<?php $servername = " localhost " ; $username = " ชื่อ ผู้ใช้ " ; $password = " รหัสผ่าน " ; $dbname = " myDBPDO " ; - $conn = ใหม่ PDO ( " mysql:host= $servername ;dbname= $dbname " , $username , $password ) ; // ตั้งค่าโหมดข้อผิดพลาด PDO สำหรับการทิ้งข้อยกเว้น $conn -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ) ; $sql = " INSERT INTO MyGuests (ชื่อ นามสกุล อีเมล) ค่า ('John', 'Doe', '[email protected]') " ; // ใช้ exec() โดยไม่มีผลลัพธ์ส่งคืน $conn -> ผู้ บริหาร ( $sql ) ; " แทรกบันทึกใหม่เรียบร้อย แล้ว " ; จับ ( PDOException $อี ) - เสียงสะท้อน $ sql . " <br> " . $e -> getMessage ( ) ; $conn = โมฆะ ; ?>