Пазіцыйная прывязка зменных у PDO ў PHP

Можна прывязваць зменныя да запыту па адной. Гэта робіцца з дапамогай метаду bindValue. Затым атрыманы запыт выконваюць, але ў гэтым выпадку ў execute нічога не перадаецца.

Такая прывязка дазваляе дакладна паказаць тып зменнай, адмяняючы аўтоабаrtнанне ў двукоссі для лікавых значэнняў. Давайце паглядзім, як гэта робіцца. Хай у нас ёсць дзве зменныя, радковая і лікавая:

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

Падрыхтуем запыт:

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

Цяпер прывяжам зменныя да запыту з дапамогай метаду bindValue. У першым параметры метаду паказваецца нумар пазіцыі ў запыце, у другім параметры - імя зменнай, а ў трэцім паказваецца тып зменнай (лікавы ці радкавы):

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

Выканаем запыт:

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;
?>

Атрымайце юзераў, у якіх узрост супадае са значэннем адной ці другой зменнай.