PDO Nedir, Nasıl Kullanılır ?

Öncelikle PDO nedir? sorusunu cevaplamak daha uygun olacaktır;

PDO, yani “PHP Data Objects / PHP Veri Objeleri” en kısa tanımıyla, hafif ve tutarlı bir şekilde veritabanına erişim sağlayan bir arayüzdür. Adından da anlaşılacağı üzere “Object Oriented Programming” yani “Nesne Tabanlı Programlama”  arayüzüne sahip, onlarca veritabanı sürücüsünü destekliyor.

PDO sürücüsü PHP 5.1.0 sürümünden itibaren etkindir. 
Eğer yazacağınız kodlar çalışmazsa php.ini dosyasından aşağıdaki satırı etkin hale getirmelisiniz.

Öncelikle burada try-catch işlemini bağlantımızı kurarken kullanacağımız için, eğer bu blog’un kullanımını bilmiyorsanız istisna-isleme-exception-handling-nedir yazımı okumanızı tavsiye ediyorum.

Neyse, bu konuyu atladıktan sonra gelelim PDO ile veritabanı bağlantımızı kurmaya.

İlk olarak deneme isimli veritabanımıza USERNAME ve PASSWORD bilgileriyle bağlantı kurmaya çalıştık. Eğer hata var ise bunu print ettirebilmek için, try-catch deyimini kullanıp hatayı yakaladık ve catch alanında yakaladığımız bu hatayı, exception’u yazdırdık.

Ben klasik olarak utf8 karakter setini kullanıyorum fakat bunu değiştirmek sizin elinizde tabiki. İsterseniz yukarıdaki bağlantı satırından, isterseniz de alttaki satırdaki şekilde değişikliği yapabilirsiniz.

Bağlantımızı yaptıktan sonra gelelim PDO ile select (veri çekme) işlemine.

Öncelikle bilmemiz gereken bir kod parçası var; PDO::FETCH_ASSOC ismindeki bu kod parçası belirtilen verileri, sütun ismiyle bir dizi olarak döndürmeye yarar.

Eğer bütün bir tabloyu çekmek istiyorsak kullanacağımız kodumuz şu şekilde olmalı;

İlk satırda sql sorgumuzu yazdık, gönderdik ve foreach ile gelen verileri tek tek yazdırdık. Bu kod ile bütün tabloyu, istediğiniz satırları döndürebilir, yazdırabilirsiniz.

Siz sadece belli bir satırı çekmek, bunu yazdırmak istiyorsanız, şu kod parçacığı da işinizi görecektir.

Eğer parametreyi, yani üst sorgudaki ID kısmını siz dışarıdan alacaksanız, kesinlikle aşağıdaki kodu kullanmalısınız, çünkü PDO sql injection açığına %100 güvenlik sağlayamamaktadır ki bunu sağlayan da sanıyorum yok. O yüzden risk almamak için bunu kullanmanızda fayda var.

Burada tek dikkat edilmesi gereken, kodun içinde de belli ettiğim PARAM_INT ve PARAM_STR kısımları.

Bunun haricinde yazdığımız sorguyla kaç satır geleceğini count_row komutu ile bulabiliyoruz.

Gelelim PDO ile insert (yeni veri ekleme) kısmına.

Burada aslında işlem olabildiğince basit gene, cümleyi yaz, değerleri dizi ile yerine koy. Bu kadar basit.

Veriyi ekledikten sonra kullanabileceğimiz bir kodumuz daha var. Eklenen verinin değerini almak için şu kodu kullanmamız gerekiyor.

Verilerimizi ekledikten sonra, PDO ile Update (Güncelleme) kısmına gelebiliriz.

Burada da insert(ekleme) işlemindekine benzer olarak sorgumuzu yazdıktan sonra bir dizi ile değişkenlerimizi sorgumuza ekliyoruz.

Ekleme kısmıda gördüğünüz gibi oldukça basit.

Son olarak bilgilerimizi silmek istersek kullanacağımız PDO ile Delete (Silme) işlemine geldik. Genel olarak bilgileri silmek yerine daha sonra sıkıntı çıkarsa hızlıca geri alabilmek için update ile silindi yada benzeri bir sütun kullanmak daha güzel oluyor bence ama genede bunu da bilmenizde fayda var.

Bu komutta da tek yapacağımız, sorguyu değiştirmek sayılır. Gene sorguyu verip, değişkenleri cümleye veriyor ve işlemi tamamlıyoruz.

Bütün işlemlerimizin temeli olan ekleme, güncelleme, silme ve veri getirme işlemlerini kısaca ve kabaca bu şekilde halledebilirsiniz.

Son olarak bu işlemleri yaptıktan sonra işlemin başarılı olup olmadığını, sonrasında yapılacak işlemleri $sonuc değişkeninden gelen değere göre yapabilirsiniz.

Ve tabiki bunları da bitirdikten sonra, bağlantılarımızı sonlandırmayı unutmuyor, sayfanın sonuna bir adet aşağıdaki koddan ekleyip, bağlantıyı boşaltıyoruz.

Umarım bu kod parçacıkları işinize yarar, güzel yerlerde kullanırsınız.

Genel olarak web üzerine yoğunlaşan, gaza gelmek için müzik dinleyen, amatör olarak resim çekmeye çalışan, bir yandan özel bir şirkette çalışıp, diğer yandan da okumaya devam eden sıradan bir ölümlü. He bide buraların sahibi.

Leave a reply:

Your email address will not be published.