Курсы по Laravel
Открыта запись на бесплатный пробный месяц! Жми для подробностей! →
⊗ppSpPDNP 74 of 95 menu
Бесплатный курс по Верстке. От новичка до продвинутого верстальщика! Мы уже начали, но можно присоединится! Жми для записи!

Автооборачнивание плейсхолдеров в кавычки в PDO в PHP

Технически PDO все ставляемые значения оборачивает в кавычки, считая их строками, даже если фактически это числа. Это допустимо синтаксисом SQL. Поэтому плейсхолдеры не нужно оборачивать в кавычки, если у вас строковое значение.

Посмотрим на примере. Пусть у нас в переменной хранится строка:

<?php $name = 'name1'; ?>

Позиционный плейсхолдер не нужно оборачивать в строку в этом случае:

<?php $sql = 'SELECT * FROM users WHERE name=?'; $res = $pdo->prepare(); $res->execute([$name]); ?>

Именованный плейсхолдер также не нужно оборачивать в строку:

<?php $sql = 'SELECT * FROM users WHERE name=:name'; $res = $pdo->prepare(); $res->execute(['name' => $name]); ?>

To, что в запросе всегда будут строки, все-таки иногда может приводить к проблемам с синтасисом SQL - там, где по синтаксису обязательно числа. В этом случае можно воспользоваться альтернативным способом привязки параметров, который мы разберем в следующих уроках.

ennlswbyuz