Dokumentasi MySQL adalah referensi lengkap untuk kode kesalahan .
Kode kesalahan mulai dari 1000 adalah kesalahan server . Ini termasuk kesalahan seperti:
-
Kesalahan:1045 SQLSTATE:28000 (
ER_ACCESS_DENIED_ERROR
)Pesan:Akses ditolak untuk pengguna '%s'@'%s' (menggunakan sandi:%s) -
Kesalahan:1049 SQLSTATE:42000 (
ER_BAD_DB_ERROR
)Pesan:Basis data tidak dikenal '%s'
Kode kesalahan mulai tahun 2000 adalah kesalahan klien . Ini termasuk kesalahan seperti:
-
Kesalahan:2005 (
CR_UNKNOWN_HOST
) Pesan:Host server MySQL tidak dikenal '%s' (%d) -
Kesalahan:2003 (
CR_CONN_HOST_ERROR
) Pesan:Tidak dapat terhubung ke server MySQL di '%s' (%d)
Saya tidak akan membuat daftar semua kemungkinan kesalahan, karena sudah didokumentasikan, dan saya tidak tahu mana yang perlu Anda tangani. Misalnya, kesalahan 2001 dan 2002 khusus untuk koneksi soket UNIX, yang mungkin tidak relevan dengan platform target Anda.
Jangan lupa untuk menggunakan PDO::errorCode()
dan PDO::errorInfo()
alih-alih hanya PDOException
pesan.
Berikan komentar Anda tentang getCode()
-- Tidak, sepertinya tidak didukung dengan cara itu. Saya melakukan tes cepat, ke var_dump()
sebuah PDOException
. Sayangnya, kodenya sederhana "0" meskipun kode kesalahan dan SQLSTATE disertakan dalam pesan pengecualian.
Pengecualian::getCode()
adalah bagian dari Exception
dasar kelas, pada PHP versi 5.1.0. Terserah implementasi driver PDO masing-masing untuk memanfaatkan bidang objek ini. Setidaknya untuk driver MySQL, tampaknya tidak.