(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)
PDOStatement::debugDumpParams — 打印一條 SQL 預處理命令
直接打印出一條預處理語(yǔ)句包含的信息。提供正在使用的 SQL
查詢(xún)、所用參數(Params
)的數目、參數的清單、參數名、用一個(gè)整數表示的參數類(lèi)型(paramtype
)、鍵名或位置、值、以及在查詢(xún)中的位置(如果當前 POD 驅動(dòng)不支持,則為-1)。
此為一個(gè)用于調試的功能,在正常輸出的情況下直接輸出數據。
和直接將結果輸出到瀏覽器一樣,可使用輸出控制函數來(lái)捕獲當前函數的輸出,然后(例如)保存到一個(gè) string 中。
只打印此時(shí)此刻語(yǔ)句中的參數。額外的參數不存儲在語(yǔ)句中,也就不會(huì )被輸出。
沒(méi)有返回值。
示例 #1 PDOStatement::debugDumpParams() 使用命名參數的例子
<?php
/* 通過(guò)綁定 PHP 變量執行一條預處理語(yǔ)句 */
$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();
?>
以上例程會(huì )輸出:
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
/* 通過(guò)綁定 PHP 變量執行一條預處理語(yǔ)句 */
$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();
?>
以上例程會(huì )輸出:
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