Certains pilotes PDO ne prennent pas en charge les instructions préparées natives, donc PDO effectue une émulation de la préparation. Il vous permet également d'activer manuellement cette émulation.
Vérifiez le PDO::ATTR_EMULATE_PREPARES
attribut. Il est mal documenté dans le manuel actuel de PDO. Par mal documenté, je veux dire qu'il apparaît seulement dans les commentaires sur le site, pas dans le manuel lui-même.
En règle générale, vous souhaitez utiliser des instructions préparées natives dans la mesure du possible. Dans le cas de MySQL, si vous tirez parti du cache de requêtes, vous voudrez peut-être en fait désactiver déclarations natives préparées dans PDO ! Le manuel MySQL contient plus d'informations , mais la version courte est que les versions antérieures à 5.1.17 n'exécutent pas d'instructions préparées via le cache de requêtes, et les versions ultérieures n'utilisent le cache de requêtes que dans certaines conditions spécifiques (mais courantes).
(Certaines personnes recommandent de désactiver complètement le cache des requêtes. Utilisation de grandes tailles de cache peut en fait être un impact majeur sur les performances.)