(PHP 5 >= 5.1.0, PECL pdo >= 0.9.0)
PDOStatement::debugDumpParams — Вывод информации о подготовленной SQL команде в целях отладки
Выводит информацию о подготовленном запросе в выходной поток. Будет выводиться текст используемого SQL запроса, количество задействованных параметров (Params), список параметров с их именами, типами (paramtype) в виде целых чисел, ключевых имен или позиций, их значений и позиций в запросе (если эта возможность поддерживается драйвером, в противном случае позиции будут равны -1).
Это отладочная функция, которая направляет данные на стандартный вывод.
Как и с любой другой функцией, осуществляющей вывод непосредственно в браузер, вы можете использовать функции контроля вывода, чтобы перехватывать выводимые этой функцией данные и сохранять их, например, в string.
Эта функция выведет информацию о параметрах запроса, существующих на момент вызова. Дополнительные параметры не хранятся в запросе, поэтому отображены не будут.
Эта функция не возвращает значения после выполнения.
Пример #1 Пример использования PDOStatement::debugDumpParams() с именованными параметрами
<?php
/* Выполнение запроса с привязкой 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();
?>
Результат выполнения данного примера:
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
Пример #2 Пример использования PDOStatement::debugDumpParams() с неименованными (?) параметрами
<?php
/* Выполнение запроса с привязкой 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();
?>
Результат выполнения данного примера:
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