文字

PDOStatement::errorInfo

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDOStatement::errorInfo 获取跟上一次语句句柄操作相关的扩展错误信息

说明

array PDOStatement::errorInfo ( void )

返回值

PDOStatement::errorInfo() 返回一个关于上一次语句句柄执行操作的错误信息的数组 。该数组包含下列字段:

Element Information
0 SQLSTATE 错误码(一个由5个字母或数字组成的在 ANSI SQL 标准中定义的标识符)。
1 具体驱动错误码。
2 具体驱动错误信息。

范例

Example #1 显示连接到DB2数据库的 PDO_ODBC 连接的 errorInfo() 的字段

<?php

$sth  $dbh -> prepare ( 'SELECT skull FROM bones' );
$sth -> execute ();

echo 
"\nPDOStatement::errorInfo():\n" ;
$arr  $sth -> errorInfo ();
print_r ( $arr );
?>

以上例程会输出:

PDOStatement::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

参见

  • PDO::errorCode() - 获取跟数据库句柄上一次操作相关的 SQLSTATE
  • PDO::errorInfo() - Fetch extended error information associated with the last operation on the database handle
  • PDOStatement::errorCode() - 获取跟上一次语句句柄操作相关的 SQLSTATE

用户评论:

[#1] Geoffrey Hoffman [2015-07-22 16:45:10]

If your query is successful, PDO::errorInfo() still returns an array. For MySQL 5.x, I get the following...

Array
(
    [0] => 00000
    [1] => 
    [2] => 
)

[#2] Deuchnord [2015-06-11 08:48:09]

Sorry, my example below is not correct, this is a correction:

<?php
$listOfUsers 
$db->query('SELECT name from uesrs');
$errorInfo $listOfUsers->errorInfo();
if(
$errorInfo[0] != 0)
    die(
$errorInfo[2]);
?>

上一篇: 下一篇: