Skip to main content
Logo

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

February 4, 2015
ru
pdo-2 prepare
This is an archived post from thewebland.net. Content may be outdated.

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

Позиционные

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

$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 с использованием подготовленной выборки