АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗ppSpPDNP 73 of 95 menu
НОВИНКА: Практика на Реальных Проектах и Работы в Портфолио. Бесплатный курс! Жми для записи!

Именованные плейсхолдеры в 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; ?>

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