Maison >base de données >tutoriel mysql >Comment puis-je voir la requête SQL « réelle » dans Doctrine lorsqu'elle utilise des instructions préparées ?

Comment puis-je voir la requête SQL « réelle » dans Doctrine lorsqu'elle utilise des instructions préparées ?

DDD
DDDoriginal
2024-10-31 03:49:301061parcourir

How Can I See the

Explorer le SQL caché avec Doctrine : découvrez les secrets de la déclaration préparée

Supposons que vous travailliez avec Doctrine et que vous ayez méticuleusement élaboré une requête comme celle-ci :

$q = Doctrine_Query::create()->select('id')->from('MyTable');

Maintenant, alors que vous affinez votre requête avec des conditions telles que :

$q->where('normalisedname = ? OR name = ?', array($string, $originalString));

Vous avez hâte d'examiner le SQL brut avant l'exécution. Alors, vous appelez :

$q->getSQLQuery();

Mais hélas, ce n'est pas ce à quoi vous vous attendiez - c'est une déclaration préparée avec des points d'interrogation. Vous voulez voir ce qui sera envoyé à la base de données.

Eh bien, voici la vérité : Doctrine n'envoie pas de "vrai" SQL au serveur de base de données. Il utilise des instructions préparées, un processus en trois étapes :

  • Envoi de l'instruction préparée pour préparation
  • Passer les paramètres séparément
  • Exécuter l'instruction préparée

Cela signifie qu'il n'y a jamais de "vraie" requête SQL du côté PHP - donc, Doctrine ne peut pas l'afficher.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn