Existe-t-il un moyen de voir une requête préparée telle qu'elle sera exécutée sur la base de données? [dupliquer]

StackOverflow https://stackoverflow.com/questions/305179

  •  08-07-2019
  •  | 
  •  

Question

  

Double possible:
   Instructions préparées pour les AOP

J'utilise l'extension mysqli en PHP et je me demande s'il existe un moyen de voir une requête préparée telle qu'elle sera exécutée sur le serveur, par exemple. La requête ressemble à ceci

select * from table1 where id = ? and name = ?

mais je veux voir la requête après avoir renseigné les valeurs, comme ceci:

select * from table1 where id = 20 and name = "John"
Était-ce utile?

La solution

Copie des Déclarations préparées pour les PDO

Réponse courte: non. Une requête préparée ne sera jamais convertie en requête attendue. Il est exécuté directement par le serveur de base de données. Vous pouvez utiliser le journal de requêtes de mysql ou la fonction non documentée de PDO debugDumpParams , mais ce ne sont que des approximations.

Autres conseils

Activez la journalisation de la requête mysql . enregistrez toutes les requêtes dans un fichier texte que vous pourrez consulter.

Voir où? S'il s'agit de votre code, vous avez la requête et les paramètres préparés, enregistrez-les séparément ou remplacez-les dans la chaîne de requête d'origine. Si la liaison échoue, vous obtiendrez une erreur, sinon vous devez vous attendre à ce que les mêmes valeurs soient "remplies". comme vous les avez spécifiés.

C'est comme ça que la plupart du temps je débogue pour mysql:

$ q = " select * from table1 où id = ". $ id. " et name = ". $ name; echo $ q;

La sortie génère toutes les variables affectées à la requête.

J'espère que je vous ai compris exactement ce que vous vouliez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top