การผูกตัวแปรตามตำแหน่งใน PDO ใน PHP

คุณสามารถผูกตัวแปรกับคำสั่ง Query ได้ทีละตัว ทำได้โดยใช้เมธอด bindValue จากนั้นคำสั่ง Query ที่ได้จะถูกดำเนินการ แต่ ในกรณีนี้จะไม่ส่งอะไรเข้าไปใน execute

การผูกแบบนี้ช่วยให้ระบุประเภทของ ตัวแปรได้อย่างแม่นยำ ยกเลิกการล้อมด้วยเครื่องหมายอัญประกาศอัตโนมัติ สำหรับค่าตัวเลข มาดูกันว่าทำได้อย่างไร สมมติว่าเรามีตัวแปรสองตัว คือสตริงและตัวเลข:

php<?php
  $name = 'name1';
  $age  = 25;
?>

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

php<?php
  $sql = 'SELECT * FROM users WHERE name=? or age=?';
  $res = $pdo->prepare($sql);
?>

ตอนนี้ให้ผูกตัวแปรกับคำสั่ง Query ด้วย เมธอด bindValue ในพารามิเตอร์แรกของเมธอดระบุ หมายเลขตำแหน่งในคำสั่ง Query ในพารามิเตอร์ที่สอง คือชื่อตัวแปร และในพารามิเตอร์ที่สามระบุประเภทตัวแปร (ตัวเลข หรือสตริง):

php<?php
  $res->bindValue(1, $name, PDO::PARAM_INT);
  $res->bindValue(2, $age,  PDO::PARAM_STR);
?>

ดำเนินการคำสั่ง Query:

php<?php
  $res->execute();
?>

มาดูผลลัพธ์:

php<?php
  while ($row = $res->fetch()) {
    var_dump($row);
  }
?>
Задание 1

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

php<?php
  $name1 = 'name1';
  $name2 = 'name2';
?>

รับผู้ใช้ที่มีชื่อตรงกัน กับค่าของตัวแปรตัวใดตัวหนึ่ง

Задание 2

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

php<?php
  $age1 = 21;
  $age2 = 22;
?>

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