10 OCAK 2017
SALI
21.11
PHP ile PDO Kullanımı

Bu konuda PHP ile veritabanı bağlantısı yaparken kullandığımız PDO (PHP Data Objects)'i inceleyeceğiz. PDO ile MySQL veritabanımıza bağlanma, veritabanımızdan veri çekme, veri ekleme, güncelleme, silme gibi bir takım olayları inceleyeceğiz. Çok fazla detaya girmeden doğrudan kodları yayınlayacağım ve kaynak olabilmesi açısından el altında kalmasını istediğim bir sayfa olacaktır.

 

PDO Nedir?

PDO, hafif ve tutarlı bir arayüzdür. PHP ile veritabanlarımıza erişirken yardımcımız olan ve desteklediği onlarca veritabanı sürücüsü ve kullanım kolaylığı ile tercih edilmektedir.

PDO ile Neler Yapabiliriz?

  1. Veritabanı Bağlantısı
  2. Veritabanındaki Verileri Listelemek
  3. Veritabanına Veri Eklemek
  4. Veritabanındaki Veriyi Güncellemek
  5. Veritabanındaki Veriyi Silmek

(Yukarıda yer alan herhangi bir liste elemanına tıklayarak sayfamızda doğrudan o bölüme gidebilirsiniz.)

Veritabanı Bağlantısı

try {
$database = new PDO("mysql:host=localhost;dbname=veritabaniAdi;charset=utf8", "kullaniciAdi", "parola");
} catch ( PDOException $e ){
print $e->getMessage();
}

Yukarıdaki yapımızda ;charset=utf8 kısmını kullanmak zorunda değildik. Fakat karakter setleri her zaman başımıza dert olduğundan bu ufak kod parçasını eklemekte fayda görüyorum. Bunun yanında dilersek farklı bir şekilde bu yapıdan ayrı olarak şöyle bir kullanımını da gerçekleştirebilirdik;

$db->query("SET CHARACTER SET uf8");

Veritabanındaki Verileri Listelemek

$yazilar = $db->query("SELECT * FROM yazilar",PDO::FETCH_ASSOC);
foreach($yazilar as $yazi){
echo $yazi["baslik"];
}

Bu kod yardımı ile veritabanı bağlantısını yaptıktan sonra veritabanımızda yer alan yazılar tablomuzu çekmiş olduk (Veritabanı bağlantısını yaparken $db adında bir değişken oluşturmuş ve bu değişken üzerinden bağlantı yapmıştık. Bu sebeple yukarıdaki yapımızda da $db değişkenini kullandık). Verileri $yazilar adında bir değişkene atadık. Bu değişkenimiz dizi olarak tanımlandığından PHP Foreach yardımı ile gelen verilerimizi tek tek döndürerek her veriyi $yazi değişkenine atadık ve $yazi["baslik"] methodumuz ile de yazilar veritabanında yer alan baslik sütunundan verimizi çekmiş olduk.

Veritabanına Veri Eklemek

$sorgu = $db->prepare("INSERT INTO yazilar SET
baslik = ?,
icerik = ?

");
$ekle = $sorgu->execute(array(
"Yazı Başlığı",
"Yazı İçeriği"

));
if ($ekle){
$last_id = $db->lastInsertId();
echo "Yeni yazı eklendi!";
}

Yukarıda yer alan kod blogumuz incelendiğinde gözlemliyoruz ki verileri birbiri ile eşleştiriyoruz. Yani birinci sıradaki yer alan verimiz $ekle parametresi içerisinde yine birinci sırada yer alıyor. Bu sıranın sebebi ise kullanılan soru işaretleridir. Eğer sıra farketmeksizin kodlarımızı oluşturmak istiyorsak mutlaka bir anahtar kelime belirlemeliyiz;

$sorgu = $db->prepare("INSERT INTO yazilar SET
baslik = :yaziBasligi,
icerik = :yaziIcerigi
");
$ekle = $sorgu->execute(array(
"yaziBasligi" => "Yazı Başlığı",
"yaziIcerigi" => "Yazı İçeriği",
));
if ($ekle){
$last_id = $db->lastInsertId();
echo "Yeni yazı eklendi!";
}

Veritabanındaki Veriyi Güncellemek

Veri ekleme işlemi ile aynıdır. Sadece kullanılan INSERT INTO yerine UPDATE kullanılır. Ayrıca $ekle methodu çalıştığında son id'yi almaya ve işleme dahil etmeye gerek yoktur. Yine aynı şekilde bir anahtar belirtilerekte yapılabilir;

$sorgu = $db->prepare("UPDATE yazilar SET
baslik = :yaziBasligi,
icerik = :yaziIcerigi
");
$guncelle = $sorgu->execute(array(
"yaziBasligi" => "Yazı Başlığı",
"yaziIcerigi" => "Yazı İçeriği",
));
if ($guncelle){
echo "Yeni yazı eklendi!";
}

Veritabanındaki Veriyi Silmek

Tüm Verileri Silmek

$sil = $db->exec("DELETE FROM yazilar");
echo 'Silinen Satır: '.$sil;

Tek Bir Veriyi Silmek

$yazilar = $db->prepare("DELETE FROM yazilar WHERE id = :id");
$sil = $yazilar->execute(array(
'id' => 3
));

Veritabanımızdaki yazilar tablomuzda yer alan ve id'si 3 olan veriyi sildik.

YORUMLAR 0
Bu konuya henüz kimse yorum yapmadı.
İlk yorumu sen yapmak ister misin?
YORUM BIRAK
Şuanda bu yoruma cevap yazıyorsunuz:
İptal Et