PHPCon Poland 2024

PDO::errorCode

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

PDO::errorCode Busca o SQLSTATE associado com a última operação no identificador do banco de dados

Descrição

public PDO::errorCode(): ?string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um SQLSTATE, um identificador alfanumérico de cinco caracteres definido no padrão ANSI SQL-92. Resumidamente, um SQLSTATE consiste em um valor de classe de dois caracteres seguido por um valor de subclasse de três caracteres. Um valor de classe de '01' indica um alerta e é acompanhado por um código de retorno de SQL_SUCCESS_WITH_INFO. Valores de classe diferentes de '01', exceto pela classe 'IM', indicam um erro. A classe 'IM' é específica para alertas e erros que derivam da implementação do próprio PDO (ou talvez do ODBC, se estiver em uso). O valor de subclasse '000' em qualquer classe indica que não há subclasse para aquele SQLSTATE.

PDO::errorCode() somente busca códigos de erro para operações realizadas diretamente no identificador do banco de dados. Se for criado um objeto PDOStatement através de PDO::prepare() ou PDO::query() e for invocado um erro no identificador da instrução, PDO::errorCode() não refletirá esse erro. Deve-se chamar PDOStatement::errorCode() para retornar o código de erro para uma operação realizada em um identificador de instrução em particular.

Retorna null se nenhuma operação foi executada no identificador do banco de dados.

Exemplos

Exemplo #1 Buscando um código SQLSTATE

<?php
/* Provoca um erro -- a tabela OSSOS não existe */
$dbh->exec("INSERT INTO ossos(cranio) VALUES ('lucy')");

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

O exemplo acima produzirá:

PDO::errorCode(): 42S02

Veja Também

  • PDO::errorInfo() - Busca informação de erro estendida associada com a última operação no identificador do banco de dados
  • PDOStatement::errorCode() - Busca o SQLSTATE associado com a última operação no objeto da instrução
  • PDOStatement::errorInfo() - Busca informação de erro estendida associada com a última operação no identificador da instrução

add a note

User Contributed Notes 3 notes

up
40
Matthias Leuffen
18 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
-23
runrioter at gmail dot com
9 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