Débugger une requête compilée avec la méthode "execute"
Bon, il m'arrive souvent de ne pas être trop certain des valeurs que je met dans mes requêtes. Avant, j'avais pour habitude de faire un echo $query, et de copier-coller ma requête dans PHPMyAdmin pour la débugger.
Mais avec PDO, je dois manuellement replacer toutes les variables que je bind dans la requête, vu que je n'arrive pas à afficher pleinement la requête.
En capturant une exception, j'arrive à avoir la partie en cause, mais sans plus.
Et PDO traite parfois les champs un peu étrangement.
Enfin bref, tout ceci pour vous dire que j'aimerais bien avoir la requête complète avec toutes les valeurs insérées à l'intérieure pour des fins de débuggage, mais je ne trouve aucune facon de faire ca.
Exemple de ce que j'aimerais:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
$query = 'SELECT *'
. ' FROM ' . CONFIG_DB_PREFIX . 'shop_item'
. ' WHERE id=?'
. ' LIMIT ?, ?;';
$prep = $db->prepare($query);
$prep->bindValue(1, (int)$this->id);
$prep->bindValue(2, (int)$startFrom);
$prep->bindValue(3, (int)$lenght);
$prep->execute();
echo $prep->query; //Cette ligne n'est pas possible/supportée. |
Qui afficherait:
Code:
1 2
|
SELECT * FROM tt_shop_item WHERE id='1' LIMIT '1', '16'; |
Ce qui m'aurais permis ne pas perdre 1h de temps à me demander pourquoi mon LIMIT plantait à cause d'un bug dans la facon dont PDO traite les intergers ! :roll:
Quelqu'un as-t'il une solution facile à implanter ?