PDOStatement::debugDumpParams


PDOStatement::debugDumpParams — 打印一条 SQL 预处理命令(PHP 5 >= 5.1.0, PECL pdo >= 0.9.0)

说明

语法

  1. bool PDOStatement::debugDumpParams ( void )

直接打印出一条预处理语句包含的信息。提供正在使用的 SQL 查询、所用参数(Params)的数目、参数的清单、参数名、用一个整数表示的参数类型(paramtype)、键名或位置、值、以及在查询中的位置(如果当前 POD 驱动不支持,则为-1)。

此为一个用于调试的功能,在正常输出的情况下直接输出数据。

提示: 和直接将结果输出到浏览器一样,可使用输出控制函数来捕获当前函数的输出,然后(例如)保存到一个 string 中。

只打印此时此刻语句中的参数。额外的参数不存储在语句中,也就不会被输出。

返回值

没有返回值。

实例

PDOStatement::debugDumpParams() 使用命名参数的例子

  1. <?php
  2. /* 通过绑定 PHP 变量执行一条预处理语句 */
  3. $calories = 150;
  4. $colour = 'red';
  5. $sth = $dbh->prepare('SELECT name, colour, calories
  6. FROM fruit
  7. WHERE calories < :calories AND colour = :colour');
  8. $sth->bindParam(':calories', $calories, PDO::PARAM_INT);
  9. $sth->bindValue(':colour', $colour, PDO::PARAM_STR, 12);
  10. $sth->execute();
  11.  
  12. $sth->debugDumpParams();
  13.  
  14. ?>

以上例程会输出:

  1. SQL: [96] SELECT name, colour, calories
  2. FROM fruit
  3. WHERE calories < :calories AND colour = :colour
  4. Params: 2
  5. Key: Name: [9] :calories
  6. paramno=-1
  7. name=[9] ":calories"
  8. is_param=1
  9. param_type=1
  10. Key: Name: [7] :colour
  11. paramno=-1
  12. name=[7] ":colour"
  13. is_param=1
  14. param_type=2

PDOStatement::debugDumpParams() 使用未命名参数的例子

  1. <?php
  2.  
  3. /* 通过绑定 PHP 变量执行一条预处理语句 */
  4. $calories = 150;
  5. $colour = 'red';
  6. $name = 'apple';
  7.  
  8. $sth = $dbh->prepare('SELECT name, colour, calories
  9. FROM fruit
  10. WHERE calories < ? AND colour = ?');
  11. $sth->bindParam(1, $calories, PDO::PARAM_INT);
  12. $sth->bindValue(2, $colour, PDO::PARAM_STR);
  13. $sth->execute();
  14.  
  15. $sth->debugDumpParams();
  16.  
  17. ?>

以上例程会输出:

  1. SQL: [82] SELECT name, colour, calories
  2. FROM fruit
  3. WHERE calories < ? AND colour = ?
  4. Params: 2
  5. Key: Position #0:
  6. paramno=0
  7. name=[0] ""
  8. is_param=1
  9. param_type=1
  10. Key: Position #1:
  11. paramno=1
  12. name=[0] ""
  13. is_param=1
  14. param_type=2