Некоторые преимущества параметризации запросов в PDO:
- Безопасность. 13 Использование подготовленных запросов уменьшает или устраняет возможность атаки путём SQL-инъекции. 1 Данные отправляются отдельно, поэтому движок SQL не может перепутать пользовательские данные с набором инструкций. 3
- Эффективность. 1 Подготовленные запросы можно использовать повторно без повторной компиляции. 1
- Обработка сложных данных. 25 Например, при добавлении в поле данных строки, которая содержит одинарную кавычку, параметризованный запрос позволяет избежать ошибок. 25
Некоторые недостатки параметризации запросов в PDO:
- Снижение производительности. 1 Если подготовленный запрос выполняется только один раз, он будет выполняться медленнее из-за дополнительного обращения к серверу. 1
- Ограничения реализации. 1 Например, некоторые версии MySQL не кэшировали результаты подготовленных запросов. 1
- Необходимость отключения эмуляции. 3 Поскольку PDO был разработан для совместимости со старыми версиями сервера MySQL, которые не поддерживали подготовленные запросы, нужно явно отключить эмуляцию. 3 В противном случае теряются преимущества защиты от инъекций, которые обычно предоставляются с помощью подготовленных запросов. 3