PDO: Позиционные и именные плейсхолдеры

В этой записи вы узнаете как использовать позиционные и именные плейсхолдеры в подготовленных запросах.

Позиционные

Обратите внимание на запрос:

$title = 'PHP%';
$author = 'Bobi%';
// query
$sql = "SELECT * FROM books WHERE title like ? AND author like ? ";
$q = $conn->prepare($sql);
$q->execute(array($title,$author));

В запросе использованы знаки вопроса в той позиции в которой должны быть какие то данные. Знаками вопроса (?) отмечены места где должны быть вызваны позиционные плейсхолдеры. Мы должны позаботиться о порядке элементов в массиве при вызове метода PDOStatement::execute().

Именные

Следующий запрос:

$title = 'PHP%';
$author = 'Bobi%';
// query
$sql = "SELECT * FROM books WHERE title like :title AND author like :author ";
$q = $conn->prepare($sql);
$q->execute(array(':author'=>$author,
                  ':title'=>$title));

 

В этом случае мы используем описательные имена вместо знаков вопроса. Также нам не важен порядок размещения элементов в массиве, так как используется ассоциативный массив.

Предыдущая: PDO: Подготовленная выборка

Следующая: PDO: Запросы Insert и Update с использованием подготовленной выборки

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.