Это то, что я до сих пор читал о PDO::ATTR_EMULATE_PREPARES
:
- Подготовить эмуляцию PDO лучше для производительности, так как MySQL native готовит обход кеша запросов.
- Подготовка к сбору MySQL лучше для безопасности (предотвращение SQL Injection).
- Подготовка к сбору MySQL лучше для отчетов об ошибках.
Я не знаю, насколько верно любое из этих утверждений. Моей самой большой заботой в выборе интерфейса MySQL является предотвращение SQL Injection. Вторая проблема - производительность.
В настоящее время мое приложение использует процедурный MySQLi (без подготовленных операторов) и довольно часто использует кеш запросов. Он редко будет повторно использовать подготовленные заявления в одном запросе. Я начал переход к PDO для именованных параметров и безопасности подготовленных операторов.
Я использую MySQL 5.1.61
и PHP 5.3.2
Должен ли я оставить PDO::ATTR_EMULATE_PREPARES
включенным или нет? Есть ли способ обеспечить как производительность кеша запросов, так и безопасность подготовленных операторов?