УрокПроверено 2026Локальный прогресс

Подготовленные запросы без мифов

Prepared statements отделяют SQL-код от значений, но не параметризуют таблицы и ORDER BY.

$pdo->prepare('SELECT * FROM users WHERE id = :id')

Последовательность

prepare() создаёт statement, execute() передаёт значения, fetch() читает результат. Один statement можно выполнять повторно с разными значениями.

Типы

execute(['id' => $id]) обычно достаточно. bindValue() нужен, когда важен PDO::PARAM_* или значение формируется до выполнения.

IN список

Создайте отдельный placeholder для каждого значения. Нельзя передать массив одному `IN (:ids)` и ожидать автоматического раскрытия.

Граница

Имена колонок выбираются из заранее известного отображения UI → SQL. Экранирование строки не превращает пользовательский идентификатор в безопасный SQL.

Задание

Постройте фильтр по трём статусам через Named Placeholder Generator и объясните порядок аргументов.

Локальный прогресс

Закрепите материал

Отметка, заметка, чек-лист и ответы остаются в localStorage этого браузера и не отправляются в аналитику.

Связанные материалы

Источники и проверка

  • PHP Documentation Group — структурный источник, без внешней ссылки

Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.

Данные этого сервиса

Настройки cookie и локальных данных

Аналитика

Текущий статус: не выбран. До согласия обе аналитические системы не загружаются.

Локальные данные

Удаление затрагивает только ключи PHP-сервиса в этом браузере и требует подтверждения.

Политики

Политика конфиденциальности · Политика использования файлов cookie