PDO::errorCode
(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDO::errorCode — Возвращает код SQLSTATE результата последней операции с базой данных
Описание
Возвращаемые значения
Возвращает 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(): ", $dbh->errorCode();
?>
Результат выполнения данного примера:
PDO::errorCode(): 42S02
Смотрите также
- PDO::errorInfo() - Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
- PDOStatement::errorCode() - Определяет SQLSTATE код соответствующий последней операции объекта PDOStatement
- PDOStatement::errorInfo() - Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Уровни абстракции
- Объекты данных PHP
- Функция PDO::beginTransaction() - Инициализация транзакции
- Функция PDO::commit() - Фиксирует транзакцию
- Функция PDO::__construct() - Создает экземпляр PDO, предоставляющий соединение с базой данных
- Функция PDO::errorCode() - Возвращает код SQLSTATE результата последней операции с базой данных
- PDO::errorInfo
- PDO::exec
- Функция PDO::getAttribute() - Получить атрибут соеденения с базой данных
- Функция PDO::getAvailableDrivers() - Возвращает массив доступных драйверов PDO
- Функция PDO::inTransaction() - Проверяет, есть ли внутри транзакция
- Функция PDO::lastInsertId() - Возвращает ID последней вставленной строки или последовательное значение
- PDO::prepare
- PDO::query
- Функция PDO::quote() - Заключает строку в кавычки для использования в запросе
- Функция PDO::rollBack() - Откат транзакции
- Функция PDO::setAttribute() - Присвоение атрибута
Коментарии
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_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$pdo->exec ("QUERY WITH SYNTAX ERROR");
} catch (PDOException $e) {
if ($e->getCode() == '2A000')
echo "Syntax Error: ".$e->getMessage();
}
?>
Bye,
Matthias
List of PostgreSQL error codes:
https://www.postgresql.org/docs/current/errcodes-appendix.html