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 :
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!