IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  digitalpanel

Etiketlenen Kullanıcılar

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 05 Kasım 2013, 22:26   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
PHP Data Objects




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. Eklendi 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 (
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
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


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


* 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 forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


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


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Liste tablomuz ise şu şekilde olacaktır


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


PDO ile gelişmiş kayıt ekleme


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Burada PDO::prepare() metodu ile çalıştırılmak üzere bir SQL deyimi hayırladık ve object(nesne) türündeki SQL deyimini $kayıt isimli bir değişkeme 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


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


PDO ile kayıt silme


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


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


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


PDO ile çok satırlı sonuç alma


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


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:


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


PDO:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
OTH

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:


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


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


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


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:


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


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:


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


PDO::FETCH_CLASS

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

Örnek


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


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


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Alıntı

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet sohbet
Cevapla

Etiketler
data, objects, php


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık