sql >> Database >  >> RDS >> Mysql

Mogelijke PDOException-fouten (MySQL 5)?

De MySQL-documentatie is de volledige referentie voor foutcodes .

Foutcodes die beginnen bij 1000 zijn serverfouten . Deze omvatten fouten zoals:

  • Fout:1045 SQLSTATE:28000 (ER_ACCESS_DENIED_ERROR )Bericht:Toegang geweigerd voor gebruiker '%s'@'%s' (met wachtwoord:%s)

  • Fout:1049 SQLSTATE:42000 (ER_BAD_DB_ERROR )Bericht:Onbekende database '%s'

Foutcodes die beginnen bij 2000 zijn clientfouten . Deze omvatten fouten zoals:

  • Fout:2005 (CR_UNKNOWN_HOST ) Bericht:Onbekende MySQL-serverhost '%s' (%d)

  • Fout:2003 (CR_CONN_HOST_ERROR ) Bericht:kan geen verbinding maken met MySQL-server op '%s' (%d)

Ik ga niet alle mogelijke fouten opsommen, omdat ze al gedocumenteerd zijn en ik niet weet welke je moet oplossen. Fouten 2001 en 2002 zijn bijvoorbeeld specifiek voor UNIX-socketverbindingen, die mogelijk niet relevant zijn voor uw doelplatform.

Vergeet niet PDO::errorCode() te gebruiken en PDO::errorInfo() in plaats van gewoon de PDOException bericht.

Opnieuw uw opmerking over getCode() -- Nee, het lijkt niet op die manier te worden ondersteund. Ik heb een snelle test gedaan om var_dump() een PDOException . Helaas is de code eenvoudig "0", hoewel de foutcode en SQLSTATE zijn opgenomen in het uitzonderingsbericht.

Uitzondering::getCode() maakt deel uit van de basis Exception class, vanaf PHP-versie 5.1.0. Het is aan de respectievelijke implementatie van het PDO-stuurprogramma om dit objectveld te gebruiken. In ieder geval voor de MySQL-driver deden ze dat blijkbaar niet.



  1. Aftrekken in sql-instructie

  2. Hoe Substr() werkt in SQLite

  3. Waarom zegt Postgres dat column niet bestaat?

  4. Waarom kunnen geïndexeerde weergaven geen MAX()-aggregatie hebben?