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