ก่อนอื่นต้องทำการเชื่อมต่อฐานข้อมูล ถ้ายังทำไม่เป็นคลิกอ่านก่อนเลย PHP connect SQL
Insert กับ Replace ใช้งานต่างกันอย่างไร
Insert Into แปลตรงตัว คือการเพิ่มข้อมูลลงไปในฐานข้อมูล วิธีการใช้งาน Insert Into ท่านสามารถอ่านได้ใน Link เพิ่มข้อมูล เข้าฐานข้อมูลด้วย PHP | ใช้ Insert Into แบบต่าง ๆ
Replace Into แปลตรงตัว คือการแทนที่ข้อมูลลงไปในฐานข้อมูล มีการทำงานและการเขียนคล้ายคลึงกับ Insert Into แต่จะเพิ่มความสามารถที่เหนือกว่า Insert เข้าไปคือ
- กรณีที่มีข้อมูล Row นั้นในฐานข้อมูลอยู่แล้ว (อ้างอิงจาก PK) คำสั่งจะทำการแทนที่ค่าใน Row นั้นลง ไปในฐานข้อมูล
- กรณีที่ยังไม่มีข้อมูล Row นั้นในฐานข้อมูล (อ้างอิงจาก PK) คำสั่งจะทำการเพิ่มค่าใหม่ลงไปในฐานข้อมูล
ปล1: Replace Into ควรระบุ PK ลงไปด้วยทุกครั้ง ไม่อย่างนั้นคำสั่งจะทำการเพิ่มข้อมูลใหม่ลงไป แทนที่จะแทนที่ข้อมูลลงไปในฐานข้อมูล
ปล2: PK ย่อมาจาก Primary Key
การใช้งาน Replace Into มี 3 รูปแบบดังนี้
รูปแบบที่ 1: ระบุ Field ที่ต้องการ Replace ลงไปพร้อมกับระบุค่าที่ต้องการเพิ่มลงไปในฐานข้อมูล
รูปแบบ
REPLACE INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
ตัวอย่างการใช้งาน
$sql ="REPLACE INTO `cookbook` (id, `name`, created_by, `timestamp`)
VALUES ('1','test','atom',NOW())";
mysqli_query($connect, $sql);
REPLACE INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
ตัวอย่างการใช้งาน
$sql ="REPLACE INTO `cookbook` (id, `name`, created_by, `timestamp`)
VALUES ('1','test','atom',NOW())";
mysqli_query($connect, $sql);
รูปแบบที่ 2: ไม่ระบุ Field ระบุเฉพาะค่าที่ต้องการเพิ่มลงไปในฐานข้อมูล (วิธีนี้เหมาะกับกรณีที่ต้องการเพิ่มข้อมูลเข้าฐานข้อมูลและเพิ่มค่าลงในทุก Field ของตางราง)
รูปแบบ
REPLACE INTO table_name
VALUES (value1, value2, value3, ...);
ตัวอย่างการใช้งาน
$sql ="REPLACE INTO `cookbook`
VALUES ('1','test','atom',NOW())";
mysqli_query($connect, $sql);
REPLACE INTO table_name
VALUES (value1, value2, value3, ...);
ตัวอย่างการใช้งาน
$sql ="REPLACE INTO `cookbook`
VALUES ('1','test','atom',NOW())";
mysqli_query($connect, $sql);
รูปแบบที่ 3: วิธีนี้ผมแถมให้ เป็นวิธีที่ผมใช้อยู่ตลอด
รูปแบบ
REPLACE INTO table_name SET
field1 = 'value1',
field2 = 'value2',
field3 = 'value3'
ตัวอย่างการใช้งาน
$sql ="REPLACE INTO `cookbook` SET
id = '2',
`name` = 'name',
created_by = 'atom',
`timestamp` = NOW()";
mysqli_query($connect, $sql);
REPLACE INTO table_name SET
field1 = 'value1',
field2 = 'value2',
field3 = 'value3'
ตัวอย่างการใช้งาน
$sql ="REPLACE INTO `cookbook` SET
id = '2',
`name` = 'name',
created_by = 'atom',
`timestamp` = NOW()";
mysqli_query($connect, $sql);