PDO ile MySQL Veri Tabanından Veri Çekme

PDO ile veri tabanı bağlantısının nasıl yapıldığını işledikten sonra, şimdi ise veri tabanında yer alan bilgileri nasıl listeleyeceğimizi anlatacağım. Buradaki listeleme işleminde sadece belirtilen şartlar doğrultusunda gerçekleşecek tek verinin nasıl çekileceğini anlatmış olacağım. Çoklu veri listeleme işlemini ise bir sonraki derste işlemiş olacağız.

Veri listeleme işlemini yaparken karşımıza 2 yol ayrımı çıkmaktadır. Bundan ilki veri çekerken sadeliktir. Diğeri ise güvenliktir. Yazacağımız sorgunun yapacağı işleme göre bu ayrım doğrultusunda kod yapısını ayarlamalıyız.

Sade ve Basit Olarak Veri Çekme İşlemi

Basit bir şekilde belirlediğimiz şart doğrultusunda veri çekmek istiyorsak o zaman aşağıda yer alan kodu kullanmamız gerekmektedir. (Veri tabanı bağlantısının $db olarak oluşturulduğu var sayılmıştır.)

 $veri = $db->query("select * from makale where id='2' and durum='0'")->fetch();

Bu kod ile id değeri 2, durum değeri 0 olan veriye ulaşılacaktır. Bu sorgudan gelen değeri ekrana yazdırmak için ise; echo $veri["baslik"] demeniz yeterli olacaktır.

Güvenlik Tedbirli, Değişkene Atamalı Veri Çekme İşlemi

Veriye ulaşma aşamasında yapılan sorguda belirlediğimiz değer karşılıklarını başka bir parametrede belirterek güvenli ve düzenli bir sistem oluşturmuş oluyoruz. Bu sayede SQL Injection açıklarından kurtulmuş oluyoruz.

İlk sorguda kullanılan query(); methodu yerine burada prepare(); metodunu kullanıyoruz. Prepare ile hazırladığımız sorguda gelen değerlerin karşılığını "?" (Soru işareti) olarak belirtiyoruz. Burada yer alan verilerin karşılığını ise execute metodunda belirtiyoruz. Bu sayede verileri daha güveli bir biçimde işlemiş oluyoruz.

Yukarıda sözü geçen deyim uygulandığında örneğimiz aşağıdaki gibi olacaktır.

$veri	= $db->prepare("select * from makale where id=? and durum=?");
$veri->execute(array("2","0"));
$islem = $veri->fetch();

Burada yer alan "?"(Soru işareti) ile belirtilen alanların değerleri execute 'da sıralı bir biçimde yazılmalıdır. Eğer olur da burada yazılan değerleri karıştırırım diyorsanız o zaman şöyle bir alternatif uygulayarak gelen değerlerin karşılığını bir Array değişken adına çevirebiliriz. Bu sayede oluşacak karışıklığı da önlemiş olacağız.

$veri = $db->prepare("select * from makale where id=:id and durum=:durum");
$veri->execute(array("id" => "2","durum" => "0"));
$islem = $veri->fetch();

Bu şekilde yazılarak gene güvenlik tedbirlerini almış oluyoruz. Bu bölümde yer alan 2 kodlama çeşidi de aynı görevi üstlenmektedir.

Burada yer alan 3 sorguda çıktı olarak aynı sonuçları verecektir. Fakat yazım farklılıklarından dolayı 2 ve 3. Kodlar daha güvenli bir şekilde işlem görecektir. Yani SQL Injection açıklarından kurtularak işlem yapacaktır.

Konuyla ilgili bir önceki ders:
- 03.06.2014 / 17:39:01 7

Sosyal Medya Paylaşım Alanı

Bunlarda İlginizi Çekebilir

Css Dersleri

Css ile Radio Butonlarını Şekillendirme

Kategori: Css Dersleri | 24.08.2013
20:57 Php Dersleri

Php ile Üye Kayıt İşlemi Yapmak

Kategori: Php Dersleri | 06.05.2013
14:27 Php Dersleri

Php ile Facebook/Twitter Hashtag Uygulaması

Kategori: Php Dersleri | 26.05.2014
6:35 Php Dersleri

String İfadeleri Eş Parçalara Bölmek | str_split();

Kategori: Php Dersleri | 04.05.2013
10:08 Javascript

Javascript ile Dinamik Title Yapmak

Kategori: Javascript | 03.05.2013

Yorum Listesi (4) # YorumYap

  • İsmail Çakır (05.06.2014 - 14:12:39)
    Acaba pdo eğitimlerine başladımı diye hergün siteni ziyaret ediyordum , takipteyim İbrahim abi :)
  • Çınar (16.06.2014 - 13:01:53)
    Anlatımlar için teşekkürler ancak ses sonuna kadar açık olduğu halde kısık geliyor buna bir çözüm bulabilirseniz muazzam olur :)
  • Life (29.07.2014 - 17:04:07)
    Çok güzel ve faydalı bir anlatım olmuş, elinize sağlık. Bir videoda da PDO ile iki tablodan nasıl veri çekebiliriz onuda anlatabilir misiniz?
  • Necdet AVCI (28.07.2015 - 16:30:44)
    Merhaba ben iki ayrı tablodan bir liste halinde nasıl veri çekebilirim

Hadi Sende Yorum Yap!

Yorum Gönderilmiştir. Onaylandıktan Sonra Mesajınız Yayınlanacaktır.