(PHP 5 >= 5.1.0, PHP 7, PHP 8)
PDOException::getCode — Obtiene el código de error SQLSTATE
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.
Esta función no contiene ningún parámetro.
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).
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.
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