Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Possíveis erros de PDOException (MySQL 5)?


A documentação do MySQL é a referência completa para códigos de erro .

Os códigos de erro que começam em 1000 são erros de servidor . Estes incluem erros como:

  • Erro:1045 SQLSTATE:28000 (ER_ACCESS_DENIED_ERROR )Mensagem:Acesso negado para usuário '%s'@'%s' (usando senha:%s)

  • Erro:1049 SQLSTATE:42000 (ER_BAD_DB_ERROR )Mensagem:Banco de dados desconhecido '%s'

Os códigos de erro que começam em 2000 são erros do cliente . Estes incluem erros como:

  • Erro:2005 (CR_UNKNOWN_HOST ) Mensagem:Host do servidor MySQL desconhecido '%s' (%d)

  • Erro:2003 (CR_CONN_HOST_ERROR ) Mensagem:Não é possível conectar ao servidor MySQL em '%s' (%d)

Não vou listar todos os erros possíveis, porque eles já estão documentados, e não sei com quais você precisa lidar. Por exemplo, os erros 2001 e 2002 são específicos para conexões de soquete UNIX, que podem ser irrelevantes para sua plataforma de destino.

Não se esqueça de usar PDO::errorCode() e PDO::errorInfo() em vez de simplesmente a PDOException mensagem.

Re seu comentário sobre getCode() -- Não, não parece ser suportado dessa forma. Fiz um teste rápido, para var_dump() uma PDOException . Infelizmente, seu código é simples "0", embora o código de erro e SQLSTATE estejam incluídos na mensagem de exceção.

Exception::getCode() faz parte da base Exception class, a partir do PHP versão 5.1.0. Cabe à respectiva implementação do driver PDO utilizar este campo de objeto. Pelo menos para o driver MySQL, eles aparentemente não.