В этой записи вы узнаете как использовать позиционные и именные плейсхолдеры в подготовленных запросах.
Позиционные
Обратите внимание на запрос:
$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 с использованием подготовленной выборки