(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)
PDOStatement::debugDumpParams — Detalla una instrucción SQL preparada
Detalla la información contenida en una instrucción preparada,
directamente en la salida estándar. La información incluye
la consulta SQL
utilizada, el número de parámetros
usados (Params
), la lista de parámetros, con
el nombre de clave o su posición, su nombre, su posición en la consulta
(si esta última información no es soportada por el controlador PDO,
es siempre -1), un tipo (param_type
) en forma de entero,
y un valor booleano is_param
.
Esta es una función de depuración, que muestra directamente información en la salida estándar.
Como con todo lo que genera un resultado directamente en el navegador, se pueden utilizar las funciones de control de salida para capturar el resultado de esta función y guardarlo, por ejemplo, en un string.
Los parámetros mostrados son aquellos que han sido añadidos en la consulta hasta el momento de la llamada. Los parámetros adicionales son ignorados.
Esta función no tiene parámetros.
Versión | Descripción |
---|---|
7.2.0 | PDOStatement::debugDumpParams() ahora devuelve el SQL enviado a la base de datos, incluyendo la consulta completa, RAW (incluyendo los marcadores de posición reemplazados con sus valores delimitados). Tenga en cuenta que esto solo estará disponible si las instrucciones preparadas emuladas están activadas. |
Ejemplo #1 Ejemplo con PDOStatement::debugDumpParams() y parámetros nombrados
<?php
/* ejecución de una instrucción preparada con enlace a 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();
?>
El resultado del ejemplo sería:
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
Ejemplo #2 Ejemplo con PDOStatement::debugDumpParams() y parámetros anónimos
<?php
/* ejecución de una instrucción preparada con enlace a 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();
?>
El resultado del ejemplo sería:
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