sql >> Database teknologi >  >> RDS >> Mysql

Mulige PDOException-fejl (MySQL 5)?

MySQL-dokumentationen er den komplette reference til fejlkoder .

Fejlkoder, der starter ved 1000, er serverfejl . Disse omfatter fejl som:

  • Fejl:1045 SQLSTATE:28000 (ER_ACCESS_DENIED_ERROR )Besked:Adgang nægtet for bruger '%s'@'%s' (ved hjælp af adgangskode:%s)

  • Fejl:1049 SQLSTATE:42000 (ER_BAD_DB_ERROR )Meddelelse:Ukendt database '%s'

Fejlkoder, der starter ved 2000, er klientfejl . Disse omfatter fejl som:

  • Fejl:2005 (CR_UNKNOWN_HOST ) Meddelelse:Ukendt MySQL-servervært '%s' (%d)

  • Fejl:2003 (CR_CONN_HOST_ERROR ) Meddelelse:Kan ikke oprette forbindelse til MySQL-serveren på '%s' (%d)

Jeg vil ikke opremse alle mulige fejl, for de er allerede dokumenteret, og jeg ved ikke, hvilke du skal håndtere. For eksempel er fejl 2001 og 2002 specifikke for UNIX-socketforbindelser, hvilket kan være irrelevant for din målplatform.

Glem ikke at bruge PDO::errorCode() og PDO::errorInfo() i stedet for blot PDOException besked.

Re din kommentar om getCode() -- Nej, det ser ikke ud til at være understøttet på den måde. Jeg lavede en hurtig test til var_dump() en PDOException . Desværre er dens kode simpel "0", selvom fejlkoden og SQLSTATE er inkluderet i undtagelsesmeddelelsen.

Exception::getCode() er en del af basis Exception klasse, fra og med PHP version 5.1.0. Det er op til den respektive PDO-driverimplementering at bruge dette objektfelt. I det mindste for MySQL-driveren gjorde de det tilsyneladende ikke.



  1. Beregn Percentilværdi ved hjælp af MySQL

  2. Oracle - update join - ikke nøglebevaret tabel

  3. Hvordan kan jeg tælle antallet af indlæg?

  4. symfony 1.4 propel:build-all virker ikke på Mysql 5.5