PHP Eğitimleri – PDO İle Veri Tabanı Bağlantısı

Merhaba arkadaşlar mobilhanem.com için hazırladığımız php eğtim seimizde bu ders PDO ile Veri Tabanı Bağlantısı yapacağız.  Bir önceki dersimizde bir veri tabanı nasıl oluşturulur uygulamalı şekilde göstermiştik. Veri tabanı oluşturmayı bilmiyorsanız devam etmeden önce PHP Eğitimleri – Veri Tabanına Giriş (MYSQL) dersimizi okumanızı tavsiye ederim. Bir önceki  derste oluşturduğumuz kullanıcılar veri tabanı üzerinden anlatmaya  devam edeceğim.

PDO Nedir?

PDO php ile veri tabanı işlemleri yapabilmemiz için hazırlanmış bir sınıftır. wamp server kurduğumuzda PDO sınıfı wamp serverin içnerisinde otomatik olarak gelmektedir.

PDO İle Veri Tabanı Bağlantısı

PDO İle Aşağıdaki şekilde bağlantı yapabilmek için bir bağlantı dizgesi oluşturmamız gerekir.  Bu bağlantı dizgesinde temel olarak aşağıdaki parametreleri verebiliriz.

  • Veri tabanı host (default olarak localhost)
  • Veri tabanı kullancıı adı (default root)
  • Veri tabanı kullanıcı şifre (default olarak boş bırakılır. Siz mysql kullanıcısı için bir şifre belirlediyseniz o şifreyi girmeniz gerekiyor)
  • Veri tabanı adı

Şimdi  veri tabanına bağlanalım.

<?php
try {
     $db = new PDO("mysql:host=localhost;dbname=mobilhanem", "root", "");
     echo "Bağlantı Başarılı.";
     
} catch ( PDOException $e ){
     echo "Bir Hata Oluştu: ".$e->getMessage();
}

Daha önceki derslerimizde try-catch yapısını görmüştük. Öncelikle try bloğu çalıştırılır eğer bir hata varsa catch kısmına bir hata fırlatılır. Bu hatayı catch kısmı yakalar ve bize hatayı gösterir. try-catch kısmını kullanmak zorunda değiliz ama hata olduğunu görmek için kullanabiliriz.

Kodu çalıştırdığımızda bilgiler doğruysa bağlantı başarılı yanlış ise de neyin hatalı olduğu ile alakalı bir bilgi mesajını ekranda göreceğiz.

şuan sadece mobilhanem veri tabanına bağlandık ama henüz kullanıcılar tablosu ile alakalı bir işlem yapmadık. Şimdi phpmyadmin üzerinden kullanıcılara manuel olarak birkaç veri ekleyelim ve bu verileri php ile listeleyelim.

Veri ekleme işini şimdilik phpmyadmin üzerinden yapacağımız için localhost/phpmyadmin sayfasına girelim ve kullanıcılar tablosuna tıklayıp üstteki menüden ekle diyelim.

Daha sonra 3 adet kullanıcı ekleyeceğim.

Verileri ekledikten sonra gözat kısmına tıkaldığımızda yukarıdaki gibi bir görüntü elde etmiş olmanız gerekiyor. Şimdi bu verileri php ile veri tabanından çekip ekrana yazdıralım.

PDO İle Veri Listeleme

PDO ile veri listelemek için öncelikle pdo nun query() methodunu kullanarak veri tabanına sorgu yapmamız gerekir. Sorgunun sonucunda gelen verileri diziye atmak için fetch() methodunu, kaç veri geldiğini öğrenmek için rowCount() methodunu kullanacağız.

<?php
try {
     $db = new PDO("mysql:host=localhost;dbname=mobilhanem", "root", "");
     
     
} catch ( PDOException $e ){
     echo "Bir Hata Oluştu: ".$e->getMessage();
}
	
$sorgu = $db->query("select * from kullanicilar");
if($sorgu->rowCount() > 0) {
	// toplam satır 0 dan büyük ise sorgumuzun cevabında veri dönmüş anlamına gelir. 
	// şimdi verileri fetch() methodu ile diziye atalım. While döngüsü ile satırlar bitene kadar dolaşalım. 
	
	while($kullanici = $sorgu->fetch()) {
		echo ' | Kullanıcı Adı: '.$kullanici["kullanici_adi"];
		echo ' | Ad Soyad: '.$kullanici["ad_soyad"];
		echo ' | E-Posta: '.$kullanici["posta"];
		echo ' | Şifre: '.$kullanici["sifre"];
		echo ' | Adres: '.$kullanici["adres"];
		echo ' | Kayıt Tarihi: '.$kullanici["kayit_tarihi"]."<br/>";
		
	}
	
	
	
}else {
	echo "Hiç Veri Bulunamadı.";
}
 

Yukarıdaki kodu çalıştırdığımızda aşağıdaki gibi bir ekran görüntüsü alacağız.

İkinci yöntem olarak fetch() methodu yerine fetchAll() methodunu kullanarakta yapabilirdik. fetch ve fetchAll arasındaki fark fetch methodu satır satır işleme yaparken  fetchAll methodu tüm satırları tek seferde işler ve geri döndürür.

Örneğimizi fetchAll() methodu ile kullanacak olursak aşağıdaki gibi değiştiririz.

<?php
try {
     $db = new PDO("mysql:host=localhost;dbname=mobilhanem", "root", "");
     
     
} catch ( PDOException $e ){
     echo "Bir Hata Oluştu: ".$e->getMessage();
}
	
$sorgu = $db->query("select * from kullanicilar");
if($sorgu->rowCount() > 0) {
	// toplam satır 0 dan büyük ise sorgumuzun cevabında veri dönmüş anlamına gelir. 
	// şimdi verileri fetch() methodu ile diziye atalım. 
	$kullanicilar = $sorgu->fetchAll();
	foreach($kullanicilar as $kullanici) {
		echo ' | Kullanıcı Adı: '.$kullanici["kullanici_adi"];
		echo ' | Ad Soyad: '.$kullanici["ad_soyad"];
		echo ' | E-Posta: '.$kullanici["posta"];
		echo ' | Şifre: '.$kullanici["sifre"];
		echo ' | Adres: '.$kullanici["adres"];
		echo ' | Kayıt Tarihi: '.$kullanici["kayit_tarihi"]."<br/>";
		
	}
	
	
	
}else {
	echo "Hiç Veri Bulunamadı.";
}

İki kodumuzunda çıktısı aynı olacaktır.

PDO ile sorgu sonucunda gelen toplam satır sayısını bulmak için rowCount() methodunu kullanıyoruz demiştik. Küçük bir örnek verecek olursak:

echo $query->rowCount()." adet veri geldi.";

şeklinde kaç veri geldiğini ekrana yazdırabiliriz. Özellikle arama sonuçlarında (*) adet sonuç bulundu işlemi için rowCount() kullanabilirsiniz.

Bir dersimizin daha sonuna geldik. Bir sonraki dersimizde görüşmek üzere 🙂

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm php dersleri için tıklayınız..

 

 

27

Vehbi Akdoğan

Erzurum Atatürk Üniversitesi Bilgisayar Mühendisliği Mezunu
Web & Android Developer
#erzurumspor

4 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?