Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

ความแตกต่างระหว่าง bindParam และ bindValue ใน PHP


bindParam และ bindValue ทั้งคู่เป็นฟังก์ชันในตัวของ PHP ที่ใช้สำหรับเข้าถึงระเบียนฐานข้อมูลโดยการแมปตัวแปรไปยังค่าในคำสั่ง PHP Data Objects (PDOStatement) ซึ่งเป็นเลเยอร์นามธรรมสำหรับคำสั่งฐานข้อมูล

ความแตกต่างสำคัญระหว่าง bindParam และ bindValue มีดังนี้:

ลำดับหัวข้อฟังก์ชัน bindParamฟังก์ชัน bindValue
1นิยามbindParam เป็นฟังก์ชันในตัวของ PHP ใช้เพื่อผูกพารามิเตอร์กับชื่อตัวแปรที่ระบุในคำสั่ง SQL เพื่อเข้าถึงระเบียนฐานข้อมูลbindValue เป็นฟังก์ชันในตัวของ PHP ใช้เพื่อผูกค่าของพารามิเตอร์กับชื่อตัวแปรที่ระบุในคำสั่ง SQL
2การดำเนินการฟังก์ชัน bindParam ทำงานเฉพาะตอนที่คำสั่งถูกดำเนินการ เช่น $stmt->bindParam(':variableName', $parameter); ถูกเรียกในทางกลับกัน bindValue ถูกคอมไพล์และกำหนดค่าในตอนที่ประกาศ เช่น $stmt->execute();
3ค่าที่เข้าถึงตามที่กล่าวมา bindParam ทำงานตอนรันคำสั่ง ดังนั้นค่าล่าสุดที่แมปกับพารามิเตอร์จะถูกใช้โดยคำสั่งในทางกลับกัน ในกรณีของ bindValue ค่าจะถูกกำหนดให้พารามิเตอร์ตอนที่ประกาศฟังก์ชันและถูกใช้โดยคำสั่ง
4ประเภทตามที่กล่าวมา ฟังก์ชัน bindParam เป็นประเภทการดำเนินการแบบ runtimeในทางกลับกัน ฟังก์ชัน bindValue เป็นประเภทการดำเนินการแบบ compiled
5ค่าที่ปรับเปลี่ยนในกรณีของ bindParam การเปลี่ยนแปลงค่าพารามิเตอร์เป็นไปได้และจะถูกดำเนินการโดยคำสั่งในทางกลับกัน ในกรณีของ bindValue การเปลี่ยนแปลงค่าพารามิเตอร์ไม่เป็นไปได้ และมีเพียงค่าเริ่มต้นเท่านั้นที่ถูกดำเนินการโดยคำสั่ง