АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗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]); ?>

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