Php Dersleri
2026 Güncel

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

5 dk okuma süresi 512 görüntülenme 28.09.2023 4.9 (18 değerlendirme)

Merhaba arkadaşlar phphocasi.com.tr 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=localhostdbname=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=localhostdbname=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=localhostdbname=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
Makaleyi Değerlendirin

Bu makale işinize yaradı mı? Puan verin!

Okuyucu puanları makalelerimizin arama motorlarında öne çıkmasına ve güncellenmesine destek olur.

4.9 / 5 (Toplam 18 oy kullanıldı)

Sıkça Sorulan Sorular (SSS)

Bu makale ve teknik konuyla ilgili detaylar

PHP Eğitimleri &#8211; PDO İle Veri Tabanı Bağlantısı makalesindeki yöntemler hangi sürümlerde geçerlidir?

İçerikteki çözümler ve kod örnekleri güncel PHP 8.x ve modern web standartları referans alınarak test edilmiştir.

Bu konuda başka makalelere nereden ulaşabilirim?

Sayfanın sağ tarafındaki Kategori Menüsü ve ilgili yazılar alanından benzer teknik rehberleri inceleyebilirsiniz.