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

Description

array PDO::errorInfo ( void )

Warning

This function is EXPERIMENTAL. The behaviour of this function, the name of this function, and anything else documented about this function may change without notice in a future release of PHP. Use this function at your own risk.

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
0Generic PDO error code corresponding to one of the PDO_ERR_* constants.
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 insert an error code of PDO_ERR_NONE into the first element of the returned array. You must call PDOStatement::errorInfo() to return the error information for an operation performed on a particular statement handle.

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

<?php
/* Provoke an error -- the BONES table does not exist */
$dbh->exec("INSERT INTO bones(skull) VALUES ('reagan')");

$arr = $dbh->errorInfo();
if (
$arr[0] == PDO_ERR_NOT_FOUND) {
    echo
"Error: a requested database object does not exist.\n";
    
printf("Driver-specific error code: %d\n", $arr[1]);
    
printf("Driver-specific message: [%s]\n", $arr[2]);
}
?>

The above example will output:

Error: a requested database object does not exist.
Driver-specific error code: -204
Driver-specific message: [SQLExecute: -204 [IBM][CLI Driver][DB2/NT]
SQL0204N  "DB2INST1.BONES" is an undefined name.  SQLSTATE=42704
 [SQL State 42S02]  (..\pecl\pdo_odbc\odbc_stmt.c:80)]