PHP Data Objects (PDO) Kullanımı

PHP Data Objects (PDO) veritabanı ile işlemler gerçekleştireceğimiz işlemler için hazırlanmış bir eklentidir. MySQL, MsSQL, Oracle ve birçok veri tabanı sürücüsü ile başarıyla çalışabilmektedir.

Localhost da phpinfo() fonksiyonunu çalıştırıp PDO eklentisinin aktif olup olmadığına bakalım. Bunu pdo_mysql kelimesini aratarak yapabiliriz. Eğer sonuç varsa eklenti aktif demektir. Eklenti aktif değilse kurulum yapmamız gerekir.

Kurulum

Kurulum için php.ini dosyamızı açalım ve aşağıdaki satırların başlarındaki noktalı virkülleri (;) kaldıralım

;extension=php_pdo.dll
;extension=php_mysql.dll

Kurulumu tamamladığımıza göre artık PDO ile işlemler yapabiliriz…

PDO ile Veritabanı Bağlantısı Yapma

Burada veri_tabani_adi yerine veri tabanı isminizi kullanici_adi yerine msql kullanıcı adınızı ve sifre yerine mysql şifrenizi girmeniz gerekmektedir

* Veritabanı bilgilerinizi parametre olarak göndererek yeni bit bağlantı oluşturduktan sonra PDO::exec() metodu ile bir SQL deyimi çalıştırabilirsiniz. Yukarıdaki örnekte veritabanı karakter setini UTF8 olarak ayarladık.

NOT: Bu anlatım için liste isminde bir veri tabanı oluşturdum. Bu veri tabanında 3 adet kolon var id(int), adi(varchar) ve soyadi(varchar). Bundan sonraki anlatımlar bu veritabanı yapısına göre anlatılacaktır.

PDO ile Kayıt Ekleme

PDO ile veritabanına yeni kayıt eklemek için PDO::exec() metodu kullanılır.

Bu işlemden sonra ekran çıktımız şu şekilde olacaktır

Liste tablomuz ise şu şekilde olacaktır

PDO ile Gelişmiş Kayıt Ekleme

Burada PDO::prepare() metodu ile çalıştırılmak üzere bir SQL deyimi hazırladık ve object(nesne) türündeki SQL deyimini $kayıt isimli bir değişkene atadık. SQL deyimini çalıştırmak için PDO::execute() metodunu kullandık. Böylece aynı SQL deyimini kullanarak sadece kayıt değerlerini belirterek kayıt ekleme olayını gerçekleştirdik

Dikkat edilmesi gereken hususlar;

* PDO::execute() metodunu kullanabilmek için SQL deyimi mutlaka PDO::prepare() metodu ile hazırlanmış olmalıdır.
* PDO::execute metodunu kullanmak için $pdo yerine oluşturduğumuz $kayit nesnesini kullandık
* PDO::execute ile gönderdiğimiz değerler bir array(dizi) halinde ve SQL deyiminde soru işareti(?) ile belirtilen sırada olmalıdır.

PDO ile Kayıt Güncelleme

PDO ile Kayıt Silme

NOT: PDO ile gelişmiş kayıt ekleme kısmında kullanılan mantıkla kayıt güncelleme ve kayıt silme yapabilirsiniz.

PDO ile Kayıt Sorgulama

PDO ile veritabanından tek bir kayıt sorgulamak için PDO::fetch() çok satırlı kayıt sorgulamak için PDO::fetchAll metodları kullanılır.

PDO ile Tek Satırlı Sonuç Alma

PDO ile Çok Satırlı Sonuç Alma

NOT: Burada dikkatinizi çekmek istediğim bir nokta var .PDO ile sonuç alma işlemi yaprken fetch(PDO::FETCH_LAZY) ve fetchAll(PDO::FETCH_CLASS) kullandık. Peki bunlar ne anlama geliyor

Sonuç Alma Metodları

PDO::FETCH_ASSOC

Veritabanından alınan sütun isimlerine göre indisli bir array(dizi)olarak döner.

Örnek:

PDO::BOTH

Sonuç hem sütün isimlerine göre hem de sütun numaralarına göre indisli olarak döner.

** Eğer herhangi bir feth metodu belirtilmemişse PDO::FETCH_BOTH varsayılan olarak ayarlanır

Örnek:

PDO::FETH_NUM

Sonuç sütün numaralarına göre indislenmiş bir dizi olarak döner. İlk sütunun indisi 0(sıfır)’dır.

Örnek

PDO::FETCH_OBJ

Sonuç veritabanından alınan sütun isimlerine göre isimlendirilmiş nesne(object) türü değişken olarak döndürülür

Örnek:

PDO::FETCH_LAZY

Sadece PDO::fetch() ile kullanıılır. PDO::FETCH_BOTH ve PDO:FETCH_OBJH sabitlerinin birleşimidir. Ayrıca SQL deyimini de sonuç dizisine ekler

Örnek:

PDO::FETCH_CLASS

Sadece PDO::fetchAll() ile kullanıılır. Sonuç bir sınıf objesi türünde döner.

Örnek

Açık Veritabanı Bağlantısını Sonlandırma

Açık olan bağlantıyı sonlandırmamız için örnekleme yaptığımız nesne değişkenini null değerine eşitlememiz yeterlidir.

Örnek

Bir önceki yazımız olan Microsoft Visual Studio ile PHP Kod Yazma başlıklı makalemizde Microsoft Visual Studio, Microsoft Visual Studio PHP Kullanımı ve Microsoft Visual Studio ve PHP hakkında bilgiler verilmektedir.

About This Author

Uzun yıllardır yazılım ile uğraşıyorum. PHP ile başladığım yazılım hayatıma şu an PHP'nin yanında Swift ve Python ile devam ediyorum. Bu güne kadar bir çok proje geliştirdim ve yeni projeler geliştirmeye de devam ediyorum. Bu sitede yazılımseverlere faydalı bilgiler vermeye, yazılım geliştirmeye, öğrendiklerimi paylaşmaya, yeni başlayanlara yol göstermeye ve onlara yardımcı olmaya çalışıyorum.

Post A Reply