PDOException::getCode

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

PDOException::getCode — Obtiene el código de error SQLSTATE

Descripción

final public function PDOException::getCode(): int|string

Devuelve el código de la excepción. Es el método heredado Exception::getCode(), pero, a diferencia de la mayoría de las demás excepciones, el código suele ser un string.

Parámetros

Esta función no contiene ningún parámetro.

Valores devueltos

Devuelve el SQLSTATE como un string de cinco caracteres (por ejemplo "42S02" o "HY000"), véase PDO::errorCode().

Si la conexión falla en PDO::__construct(), devuelve en su lugar el código de error específico del controlador como un int (por ejemplo 1045 para acceso denegado en MySQL).

Precaución

El parámetro code de Exception::__construct() solo acepta un int, por lo que pasarle este valor al relanzar el error como una excepción diferente lanza un TypeError. Convertirlo a int hace perder información ("HY000" se convierte en 0). En su lugar, pase la excepción original como parámetro previous.

Ejemplos

Ejemplo #1 Ejemplo de PDOException::getCode()

<?php
$pdo = new PDO('sqlite::memory:');

try {
    $pdo->query('SELECT * FROM missing_table');
} catch (PDOException $e) {
    var_dump($e->getCode());
}
?>

El ejemplo anterior mostrará:

string(5) "HY000"

Ejemplo #2 Relanzar una PDOException

<?php
class DatabaseException extends RuntimeException {}

$pdo = new PDO('sqlite::memory:');

try {
    try {
        $pdo->query('SELECT * FROM missing_table');
    } catch (PDOException $e) {
        // Pasar $e->getCode() como código lanzaría un TypeError
        throw new DatabaseException('La consulta falló', previous: $e);
    }
} catch (DatabaseException $e) {
    echo $e->getMessage(), ': ', $e->getPrevious()->getCode(), "\n";
}
?>

El ejemplo anterior mostrará:

La consulta falló: HY000

Véase también

+add a note

User Contributed Notes

There are no user contributed notes for this page.