PDO Sınıfı ve Veritabanına Bağlanma

 PHP DATA OBJECTS (PDO)

PHP’de mysql fonksiyonlarının geçerliliğini yitirmesiyle birlikte mysqli ve PDO arasında bir tercih yapmak gerekiyor. PDO’nun hız ve güvenlik açısından mysqli’ye karşı büyük bir üstünlüğü bulunmasa da desteklediği veritabanı sürücüleriyle bir adım öne çıkıyor. Her iki durumda da nesne tabanlı programlamayı kullanarak veritabanı işlemlerini gerçekleştirebiliriz. Bu da aynı zamanda şu anlama geliyor: PHP 5’ten önceki sürümlerde bu sınıfı kullanamazsınız. Hatta tümüyle bu sınıfın özelliklerini kullanabilmeniz için en az PHP 5.1 ile yazılım geliştirmeniz gerekli.

PHP Data Objects sınıf olmanın getirdiği özelliklere sahip. Kendi içinde metodları(fonksiyonları) olan ve bu metodlara erişerek veritabanı işlemlerini gerçekleştirmenizi sağlayan bir sınıf.

Veritabanına bağlanma işlemi ise bu sınıfın yeni bir örneğini (instance) oluşturarak bir değişkene atamakla mümkün oluyor. Bu durum nesne tabanlı programlamadan zaten bildiğimiz bir şey. Örnekle açıklayalım:

Yukarıdaki örnek en sade kullanım biçimidir. MySQL kullanılarak localhost üzerinde “ornekveritabani” veritabanı ve bu veritabanındaki bir kullanıcı ve şifre kullanılarak bağlantı sağlanmıştır. Bu ifadeyi özelleştirmemiz mümkün. Örneğin burada karakter setini utf8 olarak ayarlayabilir, hata mesajlarını özelleştirebiliriz.

Bunu sağlamanın iki yolu var. Birincisi şifreden sonra bir dizi oluşturarak sınıfa ait özellikleri istediğiniz değerleri vererek kullanabilirsiniz. Diğer yöntem ise “setAttribute” metodunu kullanmak.

Her ikisi için de örnek verelim.

Bağlantı işlemini gerçekleştirirken kullandığımız ve diğer programlama dillerinden de alışık olduğumuz bir yöntem var. İlk olarak bir işleminin başarılı olup olmadığını kontrol eden ve başarısız olursa buna uygun hatayı döndüren bir yapı mevcut. Özellikle hata yakalama ve bunu kullanıcıya anlaşılır biçimde belirtme konusunda oldukça yetenekli olduğunu belirtmek lazım. Kullandığımız yapı “try-catch” yapısıdır. Bu ikisi birbirinden bağımsız olarak kullanılamaz. “try” ile veritabanına bağlanıp bağlanmadığını kontrol edebilir ve eğer bir hata alırsak bunu “catch” ile ekrana yazdırılmasını sağlayabiliriz. Örnek kullanım:

 

Neler yaptığımızı son örnekte açıklayalım. Başlangıçta “try-catch” yapısını oluşturuyoruz. Veritbanına bağlanmak için sınıfımızı kullanıp yeni bir nesne oluşturarak bunu “db” değişkenine atadık. Ardından “setAttribute” metodunu kullanarak hata ayıklama yöntemini ve veritabanı sorgularında utf8 kullanacağımız belirttik.

Eğer bir hata dönerse bunu PDOException ile birlikte kullandığımız “e” değişkenine atadık. Siz buna farklı isimler de verebilirsiniz. Hata dönerse programı sonlandırıp hata mesajını ekrana yazdırmasını istedik.

MySQL dışında MSSQL, PostgreSQL ve diğer birçok veritabanı sürücüsünü kullanabileceğinizi unutmayın.

 

Etiketler:,

Bir Yorum

  1. sanane

Yorum Yazın

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

error: