Pozíciós változó kötés PDO-ban PHP-ben

Változókat egyenként is köthetünk a lekérdezéshez. Ezt a bindValue metódussal tehetjük meg. Majd a kapott lekérdezést végrehajtjuk, de ebben az esetben a execute-nak nem adunk át semmit.

Ez a kötés lehetővé teszi a változó típusának pontos megadását, megszüntetve az automatikus idézőjelezést a numerikus értékek esetén. Nézzük meg, hogyan is történik ez. Tegyük fel, hogy van két változónk, egy sztring és egy szám:

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

Készítsük elő a lekérdezést:

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

Most kössük a változókat a lekérdezéshez a bindValue metódus segítségével. A metódus első paraméterében a lekérdezésben szereplő pozíció sorszáma, a második paraméterben a változó neve, a harmadikban pedig a változó típusa (numerikus vagy sztring) van megadva:

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

Hajtsuk végre a lekérdezést:

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

Nézzük meg az eredményt:

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

Adottak a változók:

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

Kapjuk meg azokat a felhasználókat, akiknek a neve megegyezik az egyik vagy a másik változó értékével.

Задание 2

Adottak a változók:

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

Kapjuk meg azokat a felhasználókat, akiknek a kora megegyezik az egyik vagy a másik változó értékével.