If your query is successful, PDO::errorInfo() still returns an array. For MySQL 5.x, I get the following...
Array
(
[0] => 00000
[1] =>
[2] =>
)
(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDOStatement::errorInfo — Fetch extended error information associated with the last operation on the statement handle
PDOStatement::errorInfo() returns an array of error information about the last operation performed by this statement handle. The array consists of the following fields:
Element | Information |
---|---|
0 | SQLSTATE error code (a five characters alphanumeric identifier defined in the ANSI SQL standard). |
1 | Driver specific error code. |
2 | Driver specific error message. |
Example #1 Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database
<?php
/* Provoke an error -- the BONES table does not exist */
$sth = $dbh->prepare('SELECT skull FROM bones');
$sth->execute();
echo "\nPDOStatement::errorInfo():\n";
$arr = $sth->errorInfo();
print_r($arr);
?>
The above example will output:
PDOStatement::errorInfo(): Array ( [0] => 42S02 [1] => -204 [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N "DANIELS.BONES" is an undefined name. SQLSTATE=42704 )
If your query is successful, PDO::errorInfo() still returns an array. For MySQL 5.x, I get the following...
Array
(
[0] => 00000
[1] =>
[2] =>
)
Ansi sql state Error codes can be found here:
https://docs.oracle.com/cd/F49540_01/DOC/server.815/a58231/appd.htm
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]);
?>