PDO Comment vérifier le SQL d'une Requête ???

cjean123

Nouveau WRInaute
Bonjour,
Depuis peu je découvre la librairie PDO dans PHP. Avant je me connectais différemment à mes bases de données. En revanche, j'ai préparé de nombreux outils y compris de débogage faisant afficher les code SQL pour vérifier leur bonne écriture.
Mais avec PDO je bloque...
Voici un exemple :
Si dans mon code PHP j'écris ;
Code:
$prenom   = "Gérard";
$nom 	= "MENSOIF";
$email      = "gerard.mensoif@beaujolais.fr";
$id 		= 51;
/* Admettons Y a pas de téléphone*/
$portable = "06 07 08 09 10"; 

$sql = 'UPDATE user SET prenom=?, nom=?, email=?, telephone=?, portable=? WHERE id=? LIMIT 1;';
$sth=$dbh->prepare($sql);
$sth->execute(array($prenom,$nom,$email,$telephone,$portable,$id));

Comment vérifier le SQL 'reconstitué' résultant de l'exécution de PDO ?
Parce que là, c'est une requête toute simple, mais je m'apprête à développer des pages avec des requêtes - sous-requêtes corrélées... Si ce n'est pire.
D'avance merci.
 

cjean123

Nouveau WRInaute
Merci loubet pour ce lien.
Je pensais créer aussi de fonctions un peu comme celle décrites. Mais après une première approche, en créer pour afficher le SQL de simples requêtes sera facile. Mais pour des requêtes plus complexes, cela va prendre du temps.
 

cjean123

Nouveau WRInaute
Merci Romu,
debugdumpparams() détaille les paramètres envoyé à PDO pour la requête. c'est déjà une source importante lors d'un débogage. Mais n'affiche pas le code SQL reconstitué des paramètres interpolés.
C'est vrai que dans l'exemple je passe les valeurs par des '?' mais on pourrait tout aussi bien passer ces valeurs par des arguments nommés.
Ce qui dédoublerai le travail ...
 

cjean123

Nouveau WRInaute
Puisque le but d'un forum est aussi d'apporter des informations à tout lecteur, le lien existe aussi en version française :
http://php.net/manual/fr/pdostatement.debugdumpparams.php
 

Discussions similaires

Haut