ตัวยึดที่มีชื่อใน PDO ใน PHP

เพื่อความสะดวกสามารถใช้ตัวยึดที่มีชื่อได้ ซึ่งลำดับของตัวแปรในอาเรย์ไม่สำคัญ มาดูกันว่าจะทำงานกับตัวยึดเหล่านี้อย่างไร

สมมติว่ามีตัวแปรต่อไปนี้อีกครั้ง:

php<?php
  $min = 1;
  $max = 5;
?>

มาสร้างคำสั่ง SQL โดยใช้ตัวยึดที่มีชื่อ ไวยากรณ์ของมันคือ: เครื่องหมายจุดคู่ ตามด้วยชื่อของตัวยึด ลองใช้พวกมันในคำสั่ง:

php<?php
  $sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>

เตรียมคำสั่ง:

php<?php
  $res = $pdo->prepare($sql);
?>

ดำเนินการคำสั่ง โดยส่งพารามิเตอร์เป็นอาเรย์เชื่อมโยง โดยที่คีย์คือชื่อของตัวยึดในคำสั่ง SQL และค่าคือตัวแปรที่เกี่ยวข้อง:

php<?php
  $res->execute([
    'min' => $min,
    'max' => $max
  ]);
?>

สามารถดูผลลัพธ์ได้:

php<?php
  while ($row = $res->fetch()) {
    var_dump($row);
  }
?>

รวบรวมทุกอย่างเข้าด้วยกัน จะได้โค้ดดังต่อไปนี้:

php<?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);
  }
?>
Задание 1

กำหนดตัวแปร:

php<?php
  $age = 30;
?>

ค้นหาผู้ใช้ทั้งหมดที่มีอายุเท่ากับค่าที่กำหนดในตัวแปร

Задание 2

กำหนดตัวแปร:

php<?php
  $age1 = 20;
  $age2 = 30;
?>

ค้นหาผู้ใช้ทั้งหมดที่มีอายุอยู่ในช่วงที่กำหนดโดยค่าของตัวแปร

Задание 3

กำหนดตัวแปร:

php<?php
  $age1 = 20;
  $age2 = 30;
  
  $salary1 = 1000;
  $salary2 = 2000;
?>

ค้นหาผู้ใช้ทั้งหมดที่มีอายุ AND เงินเดือนอยู่ในช่วงที่กำหนดโดยค่าของตัวแปร