(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
PDO::errorInfo — Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
PDO::errorInfo() возвращает массив с информацией об ошибке произошедшей в ходе выполнения последней операции с базой данных. Массив содержит следующие поля:
Элемент | Информация |
---|---|
0 | Код ошибки SQLSTATE (пятисимвольный идентификатор определенный в стандарте ANSI SQL). |
1 | Код ошибки, заданный драйвером. |
2 | Выданное драйвером сообщение об ошибке. |
Замечание:
Если не задан SQLSTATE код или драйвер не сообщил об ошибке, то элементы следующие за нулевым будут иметь значение
NULL
.
PDO::errorInfo() выдает информацию об ошибке только для операций совершаемых с базой данных напрямую из PDO. Если создать объект PDOStatement методами PDO::prepare() или PDO::query(), и вызвать ошибку его методами, PDO::errorInfo() эту ошибку не отобразит. В таких случаях нужно пользоваться собственными методами получения информации об ошибках объекта PDOStatement PDOStatement::errorInfo().
Пример #1 Вывод полей массива errorInfo() для PDO_ODBC подключения к базе данных DB2
<?php
/* Спровоцируем синтаксическую ошибку SQL */
$stmt = $dbh->prepare('bogus sql');
if (!$stmt) {
echo "\nPDO::errorInfo():\n";
print_r($dbh->errorInfo());
}
?>
Результат выполнения данного примера:
PDO::errorInfo(): Array ( [0] => HY000 [1] => 1 [2] => near "bogus": syntax error )