Liaison positionnelle de variables en PDO en PHP

Il est possible de lier les variables à la requête une par une. Cela se fait à l'aide de la méthode bindValue. Ensuite, la requête obtenue est exécutée, mais dans ce cas, rien n'est passé à execute.

Cette liaison permet de préciser le type de la variable, annulant l'encadrement automatique par des guillemets pour les valeurs numériques. Voyons comment cela se fait. Supposons que nous ayons deux variables, une chaîne de caractères et une numérique :

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

Préparons la requête :

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

Maintenant, lions les variables à la requête avec l'aide de la méthode bindValue. Le premier paramètre de la méthode spécifie le numéro de la position dans la requête, le second paramètre - le nom de la variable, et le troisième indique le type de variable (numérique ou chaîne de caractères) :

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

Exécutons la requête :

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

Regardons le résultat :

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

Les variables sont données :

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

Obtenez les utilisateurs dont le nom correspond à la valeur de la première ou de la deuxième variable.

Задание 2

Les variables sont données :

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

Obtenez les utilisateurs dont l'âge correspond à la valeur de la première ou de la deuxième variable.