Vinculación posicional de variables en PDO en PHP

Se pueden vincular variables a la consulta una por una. Esto se hace usando el método bindValue. Luego, la consulta resultante se ejecuta, pero en este caso no se pasa nada a execute.

Esta vinculación permite especificar con precisión el tipo de variable, evitando el entrecomillado automático para valores numéricos. Veamos cómo se hace. Supongamos que tenemos dos variables, una cadena y una numérica:

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

Prepararemos la consulta:

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

Ahora vincularemos las variables a la consulta utilizando el método bindValue. En el primer parámetro del método se especifica el número de posición en la consulta, en el segundo parámetro - el nombre de la variable, y en el tercero se indica el tipo de variable (numérico o de cadena):

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

Ejecutaremos la consulta:

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

Veamos el resultado:

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

Se dan las variables:

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

Obtenga los usuarios cuyo nombre coincida con el valor de una u otra variable.

Задание 2

Se dan las variables:

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

Obtenga los usuarios cuya edad coincida con el valor de una u otra variable.