Именованные плейсхолдеры в PDO в PHP

Для удобства можно использовать именованные плейсхолдеры, в которых порядок следования переменных в массиве не важен. Давайте посмотрим, как с ними работать.

Пусть у нас опять есть следующие переменные:

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

Сделаем SQL запрос, использовав именнованные плейсхолдеры. Их синтасис такой: двоеточие, а потом имя плейсходера. Восользуемся ими в запросе:

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

Подготавливаем запрос:

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

Выполняем запрос, передав ему параметрами ассоциативный массив, где ключами будут имена плейсхолдеров в SQL запросе, а значениями - соответствующие переменные:

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

Можем посмотреть результат:

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

Соберем все вместе и получим следующий код:

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

Дана переменная:

php<?php
  $age = 30;
?>

Найдите всех пользователей, у которых возраст равен заданному в переменной значению.

Задание 2

Даны переменные:

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

Найдите всех пользователей, у которых возраст лежит в диапазоне, заданном значениями переменных.

Задание 3

Даны переменные:

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

Найдите всех пользователей, у которых возраст И зарплата лежат в диапазоне, заданном значениями переменных.