Lorsque vous travaillez avec Doctrine, un ORM PHP, vous devrez peut-être examiner le SQL brut envoyé à la base de données pour vérifier son syntaxe ou optimiser ses performances. Cependant, la méthode $q->getSQLQuery() renvoie uniquement l'instruction préparée, vous laissant avec des points d'interrogation (?) au lieu des paramètres réels.
La raison en est que Doctrine utilise des instructions préparées, qui améliorer la sécurité et les performances des bases de données. Il divise le processus de requête en deux étapes : la préparation de l'instruction et l'envoi des paramètres. La méthode $query->getSql() renvoie uniquement l'instruction préparée, tandis que la méthode $query->getParameters() fournit les valeurs réelles.
Par conséquent, il n'existe pas de « vraie » requête SQL. du côté PHP, et Doctrine ne peut pas l'afficher. Au lieu de cela, vous devrez créer manuellement la requête en utilisant les paramètres récupérés de $query->getParameters() ou utiliser un outil comme EXPLAIN PLAN de MySQL pour retracer l'exécution de la requête.
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!