PHP Veri Nesneleri (PDO) eklentisi, veritabanı işlemlerini gerçekleştirmek için sunulan bir arayüzdür. Php’nin v5.5 sürümünden itibaren mysql_ şeklinde tanımladığımız fonksiyonlara destek vermemesi nedeniyle, veritabanı işlemlerini PDO veya Mysqli ile yapmak zorundayız. Bizlere sunulan bu iki alternatifin birbirine göre avantajları olduğu durumlar bulunmaktadır. Bunlar;

PDO Mysqli
Sadece nesne yönelimli kullanılır Nesne yönelimsiz de kullanılabilir
12 farklı veritabanını ile kullanılabilir Sadece MySQL ile kullanılır
SQL Injection korumalıdır SQL Injection kontrolünü yazılımcı yapılmalıdır
İsimlendirilmiş parametreyi destekler İsimlendirilmiş parametreyi desteklemez
Hız konusunda Mysqli’den yavaştır PDO’dan %5 civarı daha performanslıdır

temel olarak yukarıdaki şekildedir diyebiliriz. Ben daha önce “Nesne Yönelimli Programla (OOP)” ile anlatım yapmayı tercih edeceğimi söylediğim için, buna ek olarak da uygulamalarımda PDO’yu tercih ettiğimden (MsSQL için de kullanıyorum ve SQL Injection kontrolünü yapmama gerek kalmıyor), bu yazım sadece PDO’nun temel kullanımı ile ilgili olacaktır. Eğer Mysqli kullanmayı seçecekler varsa, kullanımında mysql_ fonksiyonlarından pek bir fark bulunmuyor. Bu arada, Php sürümünüz v5 altındaysa bu eklentileri kullanamazsınız. Bu önemli notu da ekledikten sonra artık PDO’nun temel fonksiyonlarının kullanımını anlatmaya geçebiliriz.

Yukarıda PDO’nun temel kullanımını gösterdim. PDO’nın  başka bir çok methodu bulunmakta, eğer bunları incelemek isterseniz Php.net adresini önerebilirim. SQL Injection sorunundan korunmak için mutlaka prapared statements kullanın. Ayrıca, aldığınız parametrelerde bulunabilme ihtimali olan Html etiketlerini (<script></script>) temizlemeyi unutmayın, çünkü prapared statements XSS açığını önlemez.

 

Yorum Yap

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">