(PHP 5 >= 5.1.0, PECL pdo >= 0.9.0)
PDOStatement::debugDumpParams — Détaille une commande préparée SQL
Détaille les informations contenues dans une commande préparée, directement sur la sortie standard. Les informations sont notamment la requête SQL utilisée, le nombre de paramètres utilisés (Params), la liste des paramètres, avec leur nom, type (paramtype) sous forme d'entier, le nom de clé ou leur position dans la requête, la valeur associée, et la position dans la requête (Si cette dernière information n'est pas supportée par le pilote PDO, c'est toujours -1).
Ceci est une fonction de déboguage, qui affiche directement des informations sur la sortie standard.
Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, vous pouvez utiliser les fonctions de gestion des sorties pour capturer le contenu de cette fonction et le sauver, par exemple, dans une chaîne.
Les paramètres affichés sont ceux qui ont été ajoutés dans la requête jusqu'au moment de l'appel. Les paramètres surnuméraires sont ignorés.
Aucune valeur n'est retournée.
Exemple #1 Exemple avec PDOStatement::debugDumpParams() et des paramètres nommés
<?php
/* exécution d'une commande préparée avec liaison avec variables PHP */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
$sth->debugDumpParams();
?>
L'exemple ci-dessus va afficher :
SQL: [96] SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour Params: 2 Key: Name: [9] :calories paramno=-1 name=[9] ":calories" is_param=1 param_type=1 Key: Name: [7] :colour paramno=-1 name=[7] ":colour" is_param=1 param_type=2
Exemple #2 Exemple avec PDOStatement::debugDumpParams() et des paramètres anonymes
<?php
/* exécution d'une commande préparée avec liaison avec variables PHP */
$calories = 150;
$colour = 'red';
$name = 'apple';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();
$sth->debugDumpParams();
?>
L'exemple ci-dessus va afficher :
SQL: [82] SELECT name, colour, calories FROM fruit WHERE calories < ? AND colour = ? Params: 2 Key: Position #0: paramno=0 name=[0] "" is_param=1 param_type=1 Key: Position #1: paramno=1 name=[0] "" is_param=1 param_type=2