PDO::errorCode

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

PDO::errorCode Obtiene un SQLSTATE asociado con la última operación en el manejador de la base de datos

Descripción

public PDO::errorCode(): mixed

Valores devueltos

Devuelve un SQLSTATE, un identificador de cinco caracteres definidos en el estándar ANSI SQL-92. Brevemente, un SQLSTATE está formado por dos caracteres con el valor de la clase seguidos por tres caracteres con el valor de la subclase. Un valor de clase de 01 indica un aviso y se encuentra acompañado por un código de retorno de SQL_SUCCESS_WITH_INFO. Valores de clase distintos del '01', excepto la clase 'IM', indican un error. La clase 'IM' es específica para avisos y errores que derivan de la implementación del PDO (o quizás ODBC, si se está usando el driver ODBC) por sí mismo. El valor de subclase '000' en cualquier clase indica que no hay subclases para ese SQLSTATE.

PDO::errorCode() sólo devuelve códigos de error en operaciones realizadas directamente sobre el manejador de la base de datos. Si se crea un objeto PDOStatement con PDO::prepare() o PDO::query() y éstas provocan un error en el manejador de la sentencia, PDO::errorCode() no reflejará ese error. Se debe llamar a PDOStatement::errorCode() para devolver el código de error para una operación realizada por un manejador de sentencia particular.

Devuelve null si no se ha ejecutado ninguna operación en el manejador de la base de datos.

Ejemplos

Ejemplo #1 Recuperación de un código SQLSTATE

<?php
/* Provoca un error -- la tabla BONES no existe */
$dbh->exec("INSERT INTO bones(skull) VALUES ('lucy')");

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

El resultado del ejemplo sería:

PDO::errorCode(): 42S02

Ver también

  • PDO::errorInfo() - Obtiene información extendida del error asociado con la última operación del manejador de la base de datos
  • PDOStatement::errorCode() - Obtiene el SQLSTATE asociado con la última operación del gestor de sentencia
  • PDOStatement::errorInfo() - Obtiene información ampliada del error asociado con la última operación del gestor de sentencia

add a note add a note

User Contributed Notes 3 notes

up
38
Matthias Leuffen
19 years ago
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
up
-20
runrioter at gmail dot com
10 years ago
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!
To Top