Maison >développement back-end >tutoriel php >Comment puis-je voir la requête SQL réelle exécutée par mon instruction préparée PDO ?
Lors du débogage des instructions préparées PDO, il est souvent utile d'avoir accès à la chaîne de requête SQL brute qui a été exécuté. Cependant, la manière de procéder n'est pas immédiatement claire, car les instructions préparées impliquent généralement la séparation des données de paramètres de la requête réelle.
Contrairement aux instructions SQL classiques, où la requête et les paramètres sont envoyés ensemble à la base de données, les instructions préparées sont divisées en deux parties :
Cette séparation empêche les attaques par injection SQL. Cependant, cela signifie également que PDO n'a pas d'accès direct à la chaîne de requête combinée avec les valeurs de paramètres interpolées.
Pour accéder à la chaîne de requête interpolée, une option consiste à définir l'attribut PDO::ATTR_EMULATE_PREPARES. Ce mode oblige PDO à émuler les requêtes préparées côté client, en combinant la requête et les paramètres avant de les envoyer à la base de données.
Cependant, cette méthode met en garde :
Si vous utilisez MySQL, vous pouvez activer le journal des requêtes générales pour capturer la chaîne de requête interpolée. Cependant, cette approche nécessite que la requête ait déjà été exécutée.
Malheureusement, il n'existe aucun moyen fiable d'obtenir la chaîne de requête interpolée directement à partir de PDO sans recourir à l'émulation ou à la journalisation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!