ตัวยึดที่มีชื่อใน PDO ใน PHP
เพื่อความสะดวกสามารถใช้ตัวยึดที่มีชื่อได้ ซึ่งลำดับของตัวแปรในอาเรย์ไม่สำคัญ มาดูกันว่าจะทำงานกับตัวยึดเหล่านี้อย่างไร
สมมติว่ามีตัวแปรต่อไปนี้อีกครั้ง:
<?php
$min = 1;
$max = 5;
?>
มาสร้างคำสั่ง SQL โดยใช้ตัวยึดที่มีชื่อ ไวยากรณ์ของมันคือ: เครื่องหมายจุดคู่ ตามด้วยชื่อของตัวยึด ลองใช้พวกมันในคำสั่ง:
<?php
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>
เตรียมคำสั่ง:
<?php
$res = $pdo->prepare($sql);
?>
ดำเนินการคำสั่ง โดยส่งพารามิเตอร์เป็นอาเรย์เชื่อมโยง โดยที่คีย์คือชื่อของตัวยึดในคำสั่ง SQL และค่าคือตัวแปรที่เกี่ยวข้อง:
<?php
$res->execute([
'min' => $min,
'max' => $max
]);
?>
สามารถดูผลลัพธ์ได้:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
รวบรวมทุกอย่างเข้าด้วยกัน จะได้โค้ดดังต่อไปนี้:
<?php
$min = 1;
$max = 5;
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
$res = $pdo->prepare($sql);
$res->execute([
'min' => $min,
'max' => $max
]);
while ($row = $res->fetch()) {
var_dump($row);
}
?>
กำหนดตัวแปร:
<?php
$age = 30;
?>
ค้นหาผู้ใช้ทั้งหมดที่มีอายุเท่ากับค่าที่กำหนดในตัวแปร
กำหนดตัวแปร:
<?php
$age1 = 20;
$age2 = 30;
?>
ค้นหาผู้ใช้ทั้งหมดที่มีอายุอยู่ในช่วงที่กำหนดโดยค่าของตัวแปร
กำหนดตัวแปร:
<?php
$age1 = 20;
$age2 = 30;
$salary1 = 1000;
$salary2 = 2000;
?>
ค้นหาผู้ใช้ทั้งหมดที่มีอายุ AND เงินเดือนอยู่ในช่วงที่กำหนดโดยค่าของตัวแปร