รวมเทคนิคต่าง ๆ ในการพัฒนาระบบ ที่น่าสนใจ รวมไว้ที่เดียว มีอะไรสอบถาม สามารถติดต่อผ่านช่องผ่าน Fanpage เราได้เลย

วันศุกร์ที่ 1 พฤษภาคม พ.ศ. 2563

แทนที่ข้อมูล เข้าฐานข้อมูลด้วย PHP | Insert กับ Replace ใช้งานต่างกันอย่างไร

Share:

ก่อนอื่นต้องทำการเชื่อมต่อฐานข้อมูล ถ้ายังทำไม่เป็นคลิกอ่านก่อนเลย  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);

รูปแบบที่ 2: ไม่ระบุ Field ระบุเฉพาะค่าที่ต้องการเพิ่มลงไปในฐานข้อมูล (วิธีนี้เหมาะกับกรณีที่ต้องการเพิ่มข้อมูลเข้าฐานข้อมูลและเพิ่มค่าลงในทุก Field ของตางราง)
รูปแบบ
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);


รวมเทคนิค PHP+SQL << คลิกที่นี่






Share:

บทความที่ได้รับความนิยม

Search

บทความอื่น ๆ