PDOStatement::debugDumpParams

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::debugDumpParams Вывод информации о подготовленной SQL-команде в целях отладки

Описание

public PDOStatement::debugDumpParams ( ) : void

Выводит информацию о подготовленном запросе в выходной поток. Будет выводиться текст используемого SQL запроса, количество задействованных параметров (Params), список параметров с их именами ключей или индексами, их именами, индексами в запросе (если поддерживается в драйвере PDO, иначе -1), типом (param_type) в виде целого числа и логическое значение is_param.

Это отладочная функция, которая направляет данные на стандартный вывод.

Подсказка

Как и с любой другой функцией, осуществляющей вывод непосредственно в браузер, вы можете использовать функции контроля вывода, чтобы перехватывать выводимые этой функцией данные и сохранять их, например, в строку (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'$caloriesPDO::PARAM_INT);
$sth->bindValue(':colour'$colourPDO::PARAM_STR12);
$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$caloriesPDO::PARAM_INT);
$sth->bindValue(2$colourPDO::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

Список изменений

Версия Описание
7.2.0 PDOStatement::debugDumpParams() теперь возвращает SQL, отправленный в базу данных, в том числе полный необработанный запрос (включая замененные параметры с их связанными значениями). Обратите внимание, что это будет работать только при включенной эмуляции подготавливаемых запросов.

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::bindParam() - Привязывает параметр запроса к переменной
  • PDOStatement::bindValue() - Связывает параметр с заданным значением