PHP hata yönetimi etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
PHP hata yönetimi etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

15 Ocak 2025

PHP'de hata yönetimi (error handling)

 PHP'de hata yönetimi (error handling) çok önemlidir çünkü veritabanı bağlantıları ve sorgular sırasında oluşabilecek hatalar uygulamanızın düzgün çalışmasını engelleyebilir. Bu tür hataları yönetmek için PDO kullanıyorsanız, $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION) kodu, hata ayıklama ve hata yönetimini daha etkili hale getirir.

1. PDO ve setAttribute Metodu

PDO (PHP Data Objects), PHP'nin veritabanlarına güvenli ve esnek bir şekilde bağlanmasını sağlayan bir sınıftır. PDO, veritabanı bağlantıları, sorgu çalıştırma, hata yönetimi gibi işlemleri daha düzenli bir şekilde yapmanıza yardımcı olur.

setAttribute() metodu, PDO nesnesinin çeşitli ayarlarını yapmanıza olanak tanır. Bu metod, PDO'yu daha özelleştirilebilir hale getirir.

2. Hata Yönetimi ve ATTR_ERRMODE

PDO::ATTR_ERRMODE PDO'nun hata yönetimi ile ilgilidir. Bu, veritabanı bağlantısında ve sorgularda oluşan hataların nasıl yönetileceğini belirler.

Hata yönetimi modları:

  • PDO::ERRMODE_SILENT (Varsayılan): Hatalar gizlenir. PDO hata mesajlarını göstermez.
  • PDO::ERRMODE_WARNING: PDO, hata mesajlarını sadece uyarı olarak gösterir. Uyarılar, PHP'nin normal hata ayıklama sistemine benzer.
  • PDO::ERRMODE_EXCEPTION: PDO, hata meydana geldiğinde bir exception (istisna) fırlatır. Bu, hata ayıklamayı daha kolay hale getirir, çünkü hataları yakalamak için try-catch blokları kullanabilirsiniz.
ÖRNEK:
<?php try { $db = new PDO('mysql:host=localhost;dbname=testdb', 'root', ''); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Hata yönetimini ayarlıyoruz // Bir sorgu çalıştırıyoruz $query = $db->query("SELECT * FROM non_existent_table"); } catch (PDOException $e) { // Hata meydana geldiğinde exception yakalanır echo "Hata: " . $e->getMessage(); } ?>

Açıklama:

  • try bloğu: PDO nesnesini oluşturup sorgu çalıştırdığınız kısımdır. Eğer burada bir hata oluşursa, PDO bir exception fırlatacaktır.
  • catch bloğu: Eğer bir exception fırlatılırsa, bu blok devreye girer. PDOException sınıfı, PDO ile ilgili hataları yakalar. Bu hatayı $e->getMessage() ile ekrana yazdırabilirsiniz.

Avantajlar:

  • Hatalar hakkında daha fazla bilgi edinirsiniz.
  • Hata mesajları özelleştirilebilir ve hata ayıklama çok daha kolay olur.
  • Exception kullanarak hatalarla başa çıkmak, programın geri kalanının düzgün çalışmasını sağlar, çünkü hatayı kontrol edebilir ve uygun şekilde yanıt verebilirsiniz.