Marcadores de posición nombrados en PDO en PHP

Para mayor comodidad, se pueden utilizar marcadores de posición nombrados, en los que el orden de las variables en el array no es importante. Veamos cómo trabajar con ellos.

Supongamos que tenemos las siguientes variables:

php<?php
  $min = 1;
  $max = 5;
?>

Hagamos una consulta SQL usando marcadores de posición nombrados. Su sintaxis es: dos puntos seguidos del nombre del marcador de posición. Utilicemos ellos en la consulta:

php<?php
  $sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>

Preparamos la consulta:

php<?php
  $res = $pdo->prepare($sql);
?>

Ejecutamos la consulta, pasando como parámetros un array asociativo, donde las claves serán los nombres de los marcadores de posición en la consulta SQL, y los valores - las variables correspondientes:

php<?php
  $res->execute([
    'min' => $min,
    'max' => $max
  ]);
?>

Podemos ver el resultado:

php<?php
  while ($row = $res->fetch()) {
    var_dump($row);
  }
?>

Juntemos todo y obtendremos el siguiente código:

php<?php
  $min = 1;
  $max = 5;
  
  $sql = 'SELECT * FROM users WHERE id>:min and id<:max';
  $res = $pdo->prepare($sql);
  
  $res->execute([
    'min' => $min,
    'max' => $max
  ]);
  
  while ($row = $res->fetch()) {
    var_dump($row);
  }
?>
Задание 1

Se da la variable:

php<?php
  $age = 30;
?>

Encuentre todos los usuarios cuya edad sea igual al valor especificado en la variable.

Задание 2

Se dan las variables:

php<?php
  $age1 = 20;
  $age2 = 30;
?>

Encuentre todos los usuarios cuya edad esté en el rango definido por los valores de las variables.

Задание 3

Se dan las variables:

php<?php
  $age1 = 20;
  $age2 = 30;
  
  $salary1 = 1000;
  $salary2 = 2000;
?>

Encuentre todos los usuarios cuya edad Y salario estén en el rango definido por los valores de las variables.