Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Możliwe błędy PDOException (MySQL 5)?

Dokumentacja MySQL jest kompletnym źródłem informacji o kodach błędów .

Kody błędów zaczynające się od 1000 to błędy serwera . Należą do nich błędy, takie jak:

  • Błąd:1045 SQLSTATE:28000 (ER_ACCESS_DENIED_ERROR )Wiadomość:Odmowa dostępu dla użytkownika '%s'@'%s' (przy użyciu hasła:%s)

  • Błąd:1049 SQLSTATE:42000 (ER_BAD_DB_ERROR )Wiadomość:Nieznana baza danych '%s'

Kody błędów zaczynające się od 2000 to błędy klienta . Należą do nich błędy, takie jak:

  • Błąd:2005 (CR_UNKNOWN_HOST ) Wiadomość:Nieznany host serwera MySQL '%s' (%d)

  • Błąd:2003 (CR_CONN_HOST_ERROR ) Komunikat:Nie można połączyć się z serwerem MySQL na '%s' (%d)

Nie będę wymieniał wszystkich możliwych błędów, ponieważ są one już udokumentowane i nie wiem, z którymi trzeba sobie poradzić. Na przykład błędy 2001 i 2002 są specyficzne dla połączeń gniazd UNIX, co może być nieistotne dla platformy docelowej.

Nie zapomnij użyć PDO::errorCode() i PDO::errorInfo() zamiast po prostu PDOException wiadomość.

Przeczytaj swój komentarz na temat getCode() -- Nie, nie wydaje się to być obsługiwane w ten sposób. Zrobiłem szybki test, aby var_dump() PDOException . Niestety, jego kod to proste „0”, mimo że kod błędu i SQLSTATE są zawarte w komunikacie o wyjątku.

Wyjątek::getCode() jest częścią podstawowego Exception klasy, od wersji PHP 5.1.0. Wykorzystanie tego pola obiektu zależy od odpowiedniej implementacji sterownika PDO. Przynajmniej w przypadku sterownika MySQL najwyraźniej nie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uruchamianie skryptu .sql przy użyciu MySQL z JDBC

  2. Jak uruchomić lub załadować pliki .po/.mo do lokalizacji w php

  3. Tomcat6 nie może połączyć się z MySql (sterownik nie otrzymał żadnych pakietów z serwera)

  4. Zapytanie SQL wybierające z użyciem złączeń, grupowania i funkcji agregujących

  5. Jak stworzyć sekwencję w MySQL