PDOStatement::bindParam — ผูกพารามิเตอร์เข้ากับชื่อตัวแปรที่ระบุ (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDOStatement::bindParam ( ผสม $parameter , ผสม &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, ผสม $driver_options ]]] )
ผูกตัวแปร PHP เข้ากับตัวยึดที่มีชื่อหรือตัวยึดเครื่องหมายคำถามที่สอดคล้องกันในคำสั่ง SQL ที่ใช้สำหรับการประมวลผลล่วงหน้า ต่างจาก PDOStatement::bindValue() ตรงที่ตัวแปรนี้ถูกผูกไว้เป็นข้อมูลอ้างอิง และรับค่าเมื่อเรียก PDOStatement::execute() เท่านั้น
พารามิเตอร์ส่วนใหญ่เป็นพารามิเตอร์อินพุต นั่นคือ พารามิเตอร์ถูกใช้ในลักษณะอ่านอย่างเดียวเพื่อสร้างแบบสอบถาม ไดรเวอร์บางตัวรองรับการเรียกกระบวนงานที่เก็บไว้และการส่งคืนข้อมูลเป็นพารามิเตอร์เอาท์พุต และบางตัวรองรับเป็นพารามิเตอร์อินพุต/เอาท์พุต ทั้งการส่งข้อมูลและรับข้อมูลที่อัพเดต
ตัวระบุพารามิเตอร์ พารามิเตอร์ สำหรับคำสั่งที่เตรียมไว้โดยใช้ตัวยึดตำแหน่งที่มีชื่อ ชื่อพารามิเตอร์ควรอยู่ในรูปแบบ :name สำหรับข้อความที่เตรียมไว้โดยใช้ตัวยึดเครื่องหมายคำถาม ตำแหน่งพารามิเตอร์ควรได้รับการจัดทำดัชนีโดยเริ่มจาก 1
ตัวแปร ชื่อตัวแปร PHP เชื่อมโยงกับพารามิเตอร์คำสั่ง SQL
data_type ใช้ค่าคงที่ PDO::PARAM_* เพื่อระบุประเภทของพารามิเตอร์อย่างชัดเจน หากต้องการส่งคืนพารามิเตอร์ INOUT จากขั้นตอนการจัดเก็บ ให้ใช้ตัวดำเนินการระดับบิตหรือสำหรับพารามิเตอร์ data_type เพื่อตั้งค่าบิต PDO::PARAM_INPUT_OUTPUT
คำแนะนำการจัดสรรความ ยาวล่วงหน้า
ความยาวของชนิดข้อมูล driverdata เพื่อระบุว่าพารามิเตอร์เป็นพารามิเตอร์ OUT ของกระบวนงานที่เก็บไว้ ต้องตั้งค่าความยาวนี้อย่างชัดเจน
ไดรเวอร์_ตัวเลือก
ส่งคืน TRUE เมื่อสำเร็จ หรือ FALSE เมื่อล้มเหลว
<?php/* ดำเนินการคำสั่งที่เตรียมไว้ผ่านตัวแปร PHP ที่ถูกผูกไว้*/$แคลอรี่ = 150;$color = 'red';$sth = $dbh->prepare('เลือกชื่อ, สี, แคลอรี่จากผลไม้ WHERE แคลอรี่ < :แคลอรี่ และ color = :color');$sth->bindParam(':แคลอรี่', $แคลอรี่, PDO::PARAM_INT);$sth->bindParam(':color', $color, PDO::PARAM_STR, 12);$sth->ดำเนินการ();?>
<?php/* ดำเนินการคำสั่งที่เตรียมไว้ผ่านตัวแปร PHP ที่ถูกผูกไว้*/$แคลอรี่ = 150;$color = 'red';$sth = $dbh->prepare('เลือกชื่อ, สี, แคลอรี่จากผลไม้ WHERE แคลอรี่ < ? AND สี = ?');$sth->bindParam(1, $แคลอรี่, PDO::PARAM_INT);$sth->bindParam(2, $สี, PDO::PARAM_STR, 12);$sth->ดำเนินการ();?>
<?php/* เรียก Stored Procedure ด้วยพารามิเตอร์ INOUT*/$color = 'red';$sth = $dbh->prepare('CALL puree_fruit(?)');$sth->bindParam(1, $color, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);$sth->execute();print("หลังจากบดผลไม้แล้ว สี คือ: $color");?>