Algunos controladores de PDO no admiten declaraciones preparadas nativas, por lo que PDO realiza la emulación de la preparación. También le permite habilitar manualmente esta emulación.
Compruebe el PDO::ATTR_EMULATE_PREPARES
atributo. Está mal documentado en el manual PDO actual. Por pobremente documentado, quiero decir que parece solamente en comentarios en el sitio, no en el manual mismo.
Por lo general, desea utilizar declaraciones preparadas nativas siempre que sea posible. En el caso de MySQL, si está aprovechando el caché de consultas, es posible que desee deshabilitar declaraciones nativas preparadas en PDO! El manual de MySQL tiene más información , pero la versión corta es que las versiones anteriores a la 5.1.17 no ejecutan declaraciones preparadas a través de la caché de consultas, y las versiones posteriores solo usan la caché de consultas bajo ciertas condiciones específicas (pero comunes).
(Algunas personas recomiendan desactivar la caché de consultas por completo. Usar grandes tamaños de caché en realidad puede ser un gran éxito de rendimiento).