PDO::errorInfo

(no version information, might be only in CVS)

PDO::errorInfo --  Fetch extended error information associated with the last operation on the database handle

说明

array PDO::errorInfo ( void )

返回值

PDO::errorInfo() returns an array of error information about the last operation performed by this database handle. The array consists of the following fields:

ElementInformation
0SQLSTATE error code (a five-character alphanumeric identifier defined in the ANSI SQL standard).
1Driver-specific error code.
2Driver-specific error message.

PDO::errorInfo() only retrieves error information for operations performed directly on the database handle. If you create a PDOStatement object through PDO::prepare() or PDO::query() and invoke an error on the statement handle, PDO::errorInfo() will not reflect the error from the statement handle. You must call PDOStatement::errorInfo() to return the error information for an operation performed on a particular statement handle.

范例

例子 1. Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database

<?php
/* Provoke an error -- the BONES table does not exist */
$err = $dbh->prepare('SELECT skull FROM bones');
$err->execute();
echo
"\nPDO::errorInfo():\n";
print_r($err->errorInfo());
?>

上例将输出:

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

参见

PDO::errorCode()
PDOStatement::errorCode()
PDOStatement::errorInfo()


add a note add a note User Contributed Notes
Travis Pulley (travis at pulley dot org)
22-Aug-2006 09:29
The example code is incorrect. The line that reads:
$err = $dbh->prepare('SELECT skull FROM bones');

Will set the value of $err to be boolean FALSE.

So, to get a useful error dump change this line:
print_r($err->errorInfo());

to:
print_r($dbh->errorInfo());