PDO::errorCode

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

PDO::errorCode Возвращает код SQLSTATE результата последней операции с базой данных

Описание

mixed PDO::errorCode ( void )

Возвращаемые значения

Возвращает SQLSTATE - пятисимвольный идентификатор, определенный в стандарте ANSI SQL-92. Первые два символа SQLSTATE отвечают за класс ошибки, а следующие три определяют ее подкласс. Класс ошибок 01 означает предупреждение, которому сопутствует возвращаемый код SQL_SUCCESS_WITH_INFO. Классы отличные от 01, за исключением 'IM', означают ошибки выполнения запросов к базе данных. Класс 'IM' свидетельствует об ошибках и предупреждениях, которые вызваны самой реализацией PDO (или, возможно, ODBC, если используется ODBC драйвер). Значение подкласса '000' в любом классе означает, что подкласс для этого SQLSTATE отсутствует.

PDO::errorCode() выдает код ошибки только для операций совершаемых с базой данных напрямую из PDO. Если создать объект PDOStatement методами PDO::prepare() или PDO::query(), и вызвать ошибку его методами, PDO::errorCode() эту ошибку не отобразит. В таких случаях нужно пользоваться собственными методами получения кодов ошибок объекта PDOStatement PDOStatement::errorCode().

Возвращает NULL, если никаких операций над базой данных средствами PDO объекта не производилось.

Примеры

Пример #1 Получение кода SQLSTATE

<?php
/* Спровоцируем ошибку -- таблицы BONES не существует */
$dbh->exec("INSERT INTO bones(skull) VALUES ('lucy')");

echo 
"\nPDO::errorCode(): ";
print 
$dbh->errorCode();
?>

Результат выполнения данного примера:

PDO::errorCode(): 42S02

Смотрите также

  • PDO::errorInfo() - Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
  • PDOStatement::errorCode() - Определяет SQLSTATE код соответствующий последней операции объекта PDOStatement
  • PDOStatement::errorInfo() - Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement

Коментарии

Автор:
Hi,

List containing all SQL-92 SQLSTATE Return Codes:
http://www.unix.org.ua/orelly/java-ent/jenut/ch08_06.htm

Use the following Code to let PDO throw Exceptions (PDOException) on Error.

<?PHP 
$pdo 
= new PDO (whatever);
$pdo->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
try {
   
$pdo->exec ("QUERY WITH SYNTAX ERROR");
} catch (
PDOException $e) {
    if (
$e->getCode() == '2A000')
        echo 
"Syntax Error: ".$e->getMessage();
}
?>

Bye,
  Matthias
2005-12-04 06:36:18
http://php5.kiev.ua/manual/ru/pdo.errorcode.html
This reading says that "Returns NULL if no operation has been run on the database handle".

When I tested it based on pdo-mysql, I got 00000, not NULL!
2014-12-14 17:51:31
http://php5.kiev.ua/manual/ru/pdo.errorcode.html

    Поддержать сайт на родительском проекте КГБ