(PHP 5 >= 5.1.0, PECL pdo >= 0.9.0)
PDOStatement->debugDumpParams — SQL プリペアドコマンドを出力する
プリペアドステートメントに含まれる以下のような情報を直接出力します。 使用する SQL クエリ、使用するパラメータ数 (Params)、パラメータリスト、パラメータ名、 パラメータの型 (paramtype) をあらわす整数値、 そのキーの名前あるいは位置、値、そしてクエリ内での位置 (PDO ドライバがサポートしている場合のみ。サポートしていない場合は -1 となります) 。
これはデバッグ用関数です。結果を標準出力にそのまま出力します。
これは、出力時にステートメント内にあるパラメータのみを出力します。 追加パラメータはステートメントに格納されておらず、出力されません。
値を返しません。
例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