18 Jun

Neden PDO Kullanmalıyız ? İşlevsellik

PDO kullanmanın yararlarına dair burada ve şuradaki yazılarım ile başlayan PDO serisinin, kendimce son halkası olan bu yazı ile son buluyor.

Yoğun veritabanı işlemlerinin olduğu, çok fazla girdi olan işlemler hep sıkmıştır beni. Çünkü her parametreyi tek tek kontrol etmek, hata takibi vb işlemler.

Bu söylediğim can sıkıcı durumu hafifleten PDO, sunduğu olanaklar ile kodlamada ve kontrolde bize yardımcı oluyor. Bunu nasıl mı yapıyor ?

PDO bildirimleri ile, SQL cümleciklerine gönderilmesi gereken paremetreleri zahmetsizce ekleyebiliyor ve aynı zamanda etkisizleştirebiliyoruz :

1
2
3
4
5
6
7
try{
  $pdo=new PDO('mysql:dbname=testdb;host=localhost','kullanici','sifre');
  $sorgu=$pdo->prepare('INSERT INTO kullanicilar VALUES (?,?,?)');
  $sorgu->execute(array('ersin dogan','ersin','12345'));
}catch(Exception $e){
  echo $e->getMessage();
}

Yukarıdaki kod ile yapmaya çalıştığım şey, veritabanına bağlanarak kullanıcılar tablosuna verilen bilgileri kaydetmek. Eski yönteme göre yapmmış olsaydık :
– bağlantıyı açacak
– veritabanını seçecek
– verilen her parametreyi SQLe geçirecek
– sorguyu çalıştırcak
– ve her adımda hata kontrolü yapacaktık.

Yukarıda yazdığım adımları, aklınızdan koda döktüğünüzde, PDO ile yazılmış örnekten çok daha fazla satıra ve uğraşa mal olacağını kolaylıkla bulabilirsiniz.

Örneğimizde bütün işlemleri try – catch bloğu içerisine alarak hata kontrolünü kolaylıkla yapabiliyoruz.

prepare metodu ile, SQL cümleciğini bir PDO bildirimine (statement) dönüştürüyoruz. Bu bildirimin execute metoduna gerekli parametreleri verdiğimizde, bu bildirim otomatik olarak parametre eşleşmelerini yaparak sorguyu çalışıtırır.

Eşleşmeyi ? işareti yerine , execute içerisine verilen array deki parametreleri sırası ile vererek yapar. Eğer arraydeki parametreleri yanlış sıralarsanız tabloya yanlış kaydedilir veya hiç kaydedilmez.

Bunu önlemek için , parametre eşleşmelerini isim vererek de yapabilirsiniz :

1
2
3
4
5
6
7
try{
  $pdo=new PDO('mysql:dbname=testdb;host=localhost','kullanici','sifre');
  $sorgu=$pdo->prepare('INSERT INTO kullanicilar VALUES (:adsoyad,:kullanici,:sifre)');
  $sorgu->execute(array('adsoyad'=>'ersin dogan','kullanici'=>'ersin','sifre'=>'12345'));
}catch(Exception $e){
  echo $e->getMessage();
}

Bu yöntem karışıklıkları engellemek için daha etkili. Daha önceki konuda verdiğim kodları incelerseniz, konuya dair daha fazla fikre sahip olabilirsiniz.

Konuya dair toparlayabildiklerim bunlar. Eksik, anlaşılmayan veya hatalı yerler var ise beni uyarırısanız, gerekli değişiklikleri en kısa zamanda yaparım.

Güzel günler dileği ile.

3 thoughts on “Neden PDO Kullanmalıyız ? İşlevsellik

  1. ersin hocam yazı gayet anlaşılır ve güzel bir kaynak. bu konuda bir sorum olacak, sizde mysqli mi pdo mu? bu işlemlerin hemen hepsi mysqli ile de yapılabiliyor. siz hangisini tavsiye edersiniz?

  2. Pdo ile Mysqli farkl şeyler aslında. Mysqli sadece mysql için kullanılabiliyorken, PDO birçok veritabanı için destek vermekte. Yazılardan da anlaşlacağı gibi PDO tercih ederim

  3. Teşekkürler hocam. söylediğiniz gibi pdo tüm veritabanlarını destekliyor. bu yüzden daha ağır basıyor.

Comments are closed.