try catch yapısı kurun, catch kısmında getMessage() metoduyla hata mesajını yakalayın, onun üzerinde işlem yapılması daha kolay olacaktır, çünkü daha kısa bir hata mesajı çıkar karşınıza

SQLSTATE[HY000] [1049] Unknown database 'sdf'

mesela bu böyle bir tablo bulunamadı hatası.

Sizin kodda da büyük ihtimalle şöyle bir hata mesajı çıkacaktır

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry


Sonra bu hatanın içinde bazı anahtar kelimelerin geçip geçmediğini kontrol ederek mesajı ona göre verebilirsiniz.


try {
//Burada veri tabanına kayıt etme işlemleri çalışsın
} catch (PDOException $e) {
if (stripos($e->getMessage(),'Duplicate entry')) {
echo 'Aynı kayıttan tekrar ekleyemezsiniz';
} else {
echo $e->getMessage();
}
}