prepare ในภาษา PHP คือคำสั่งที่ใช้สำหรับแยกตัวแปร กับคำสั่ง SQL ออกจากกัน เพื่อป้องกันการโจมตีที่เรียกว่า SQL Injection โดยคำสั่ง prepare จะใช้ร่วมกับ bind_param เพื่อผูกตัวแปรเข้ากับ SQL และรัน SQL ด้วยคำสั่ง execute มีรายละเอียดดังนี้
ตัวอย่าง องค์ประกอบของการใช้ prepare ใน PHP
1. prepare คือคำสั่งเตรียมคำสั่ง SQL โดยแยกตัวแปรกับ SQL ออกจากกัน โดยตัวแปรจะถูกแทนที่ด้วย ?
2. bind_param คือคำสั่งใส่ตัวแปรลงไปใน SQL มีลำดับ และอักษรแทนชนิดของตัวแปร เช่น i = int, s = string
3. execute คือคำสั่งรัน SQL ที่เขียนแบบ prepare
ตัวอย่าง การใช้ prepare, bind_param และ execute ใน PHP
$stmt = $conn->prepare("INSERT INTO employee (name, salary) VALUES (?, ?)");
$stmt->bind_param("si", $name, $salary);
if ($stmt->execute() === TRUE) {
...
}
จากตัวอย่างอธิบายได้ดังนี้
1. ใช้คำสั่ง prepare เพื่อเตรียมคำสั่ง SQL เพิ่มข้อมูลลงในตาราง employee ประกอบด้วย name และ salary โดยให้ตัวแปรทั้ง 2 เป็น ?
2. ใช้คำสั่ง bind_param ใส่ตัวแปรลงใน SQL โดยเรียงลำดับคือ s (string) เท่ากับ $name และ i (int) เท่ากับ salary
3. ใช้คำสั่ง execute เพื่อรัน prepare SQL ของ PHP
สรุป PHP prepare คือคำสั่งที่ใช้ป้องกันการโจมตีแบบ SQL Injection หลักการคือแยกตัวแปร และ SQL ออกจากกัน โดยใช้ร่วมกับคำสั่ง bind_param สำหรับใส่ตัวแปรลงใน SQL และ execute เพื่อรัน SQL ที่ใช้งาน prepare