Именованные плейсхолдеры в PDO в PHP
Для удобства можно использовать именованные плейсхолдеры, в которых порядок следования переменных в массиве не важен. Давайте посмотрим, как с ними работать.
Пусть у нас опять есть следующие переменные:
<?php
$min = 1;
$max = 5;
?>
Сделаем SQL запрос, использовав именнованные плейсхолдеры. Их синтасис такой: двоеточие, а потом имя плейсходера. Восользуемся ими в запросе:
<?php
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>
Подготавливаем запрос:
<?php
$res = $pdo->prepare($sql);
?>
Выполняем запрос, передав ему параметрами ассоциативный массив, где ключами будут имена плейсхолдеров в SQL запросе, а значениями - соответствующие переменные:
<?php
$res->execute([
'min' => $min,
'max' => $max
]);
?>
Можем посмотреть результат:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Соберем все вместе и получим следующий код:
<?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);
}
?>
Дана переменная:
<?php
$age = 30;
?>
Найдите всех пользователей, у которых возраст равен заданному в переменной значению.
Даны переменные:
<?php
$age1 = 20;
$age2 = 30;
?>
Найдите всех пользователей, у которых возраст лежит в диапазоне, заданном значениями переменных.
Даны переменные:
<?php
$age1 = 20;
$age2 = 30;
$salary1 = 1000;
$salary2 = 2000;
?>
Найдите всех пользователей, у которых возраст И зарплата лежат в диапазоне, заданном значениями переменных.