Някои PDO драйвери не поддържат собствени подготвени изрази, така че PDO извършва емулация на подготовката. Освен това ви позволява ръчно да активирате тази емулация.
Проверете PDO::ATTR_EMULATE_PREPARES
атрибут. Това е лошо документирано в текущото ръководство за ЗНП. Под лошо документиран имам предвид, че изглежда само в коментарите на сайта, а не в самото ръководство.
Обикновено искате да използвате подготвени изявления, когато е възможно. В случай на MySQL, ако се възползвате от кеша на заявките, може всъщност да искате да деактивирате местно подготвени изявления в PDO! Ръководството за MySQL съдържа повече информация , но кратката версия е, че версиите преди 5.1.17 не изпълняват подготвени изрази през кеша на заявките, а следващите версии използват кеша на заявките само при определени специфични (но често срещани) условия.
(Някои хора препоръчват да изключите изцяло кеша на заявките. Използване на големи размери на кеша всъщност може да бъде голям хит в производителността.)