Dokumentace MySQL je kompletní referencí pro chybové kódy .
Chybové kódy začínající na 1000 jsou chyby serveru . Patří mezi ně chyby jako:
-
Chyba:1045 SQLSTATE:28000 (
ER_ACCESS_DENIED_ERROR
)Zpráva:Přístup odepřen uživateli '%s'@'%s' (s použitím hesla:%s) -
Chyba:1049 SQLSTATE:42000 (
ER_BAD_DB_ERROR
)Zpráva:Neznámá databáze '%s'
Chybové kódy začínající na 2000 jsou chyby klienta . Patří mezi ně chyby jako:
-
Chyba:2005 (
CR_UNKNOWN_HOST
) Zpráva:Neznámý hostitel serveru MySQL '%s' (%d) -
Chyba:2003 (
CR_CONN_HOST_ERROR
) Zpráva:Nelze se připojit k serveru MySQL na '%s' (%d)
Nebudu vypisovat všechny možné chyby, protože jsou již zdokumentovány a já nevím, které z nich musíte řešit. Například chyby 2001 a 2002 jsou specifické pro připojení soketu UNIX, což může být pro vaši cílovou platformu irelevantní.
Nezapomeňte použít PDO::errorCode()
a PDO::errorInfo()
místo jednoduše PDOException
zprávu.
Znovu svůj komentář k getCode()
-- Ne, nezdá se, že by to bylo podporováno tímto způsobem. Udělal jsem rychlý test na var_dump()
PDOException
. Bohužel je jeho kód jednoduchý "0", i když chybový kód a SQLSTATE jsou zahrnuty ve zprávě o výjimce.
Výjimka::getCode()
je součástí základní Exception
třídy, od verze PHP 5.1.0. Je na příslušné implementaci ovladače PDO, zda toto pole objektu využije. Alespoň u ovladače MySQL to zjevně neudělali.