PHP Data Objects (PDO) Kullanımı

PDO Nedir?

PDO (PHP Data Objects / PHP Veri Objeleri) özetle; hafif ve tutarlı bir şekilde veritabanına erişimi sağlayan bir arayüz. Adından da anlayacağınız üzerie “Object Oriented Programming” arayüzüne sahip, onlarca veritabanı sürücüsü destekliyor.

PDO Veritabanı Bağlantısı

[code type=”php”] try{
$db = new PDO(‘mysql:host=localhost;dbname=VeritabanıIsmi;charset=utf8′,’Kullanıcı Adı’,’Sifre’);
}catch(PDOException $e){
echo ‘Hata: ‘.$e->getMessage();
}[/code]

Veritabanı bağlantısında olası hataları yakalamak için try cacth kullandık. Karakter Setini UTF-8 olarak belirledik.

PDO prepare() Methodu Kullanımı

prepare() Çalıştırılmak üzere bir SQL deyimini hazırlar. Metot bindparam(),execute(), bindColumn(), bindValue() metotları ile beraber çalışır. Dışarıdan SQL sorgularına dahil edilecek veriler için iki tür tanım yapmayı sağlar. Bunlardan birisi soru işaretidir. Diğeri ise önünde iki nokta üst üste olan herhangi bir isimdir.

PDO Hata Mesajlarını Yakalama errorInfo() Kullanımı

Mysql kullandığımızda sorgularımızın sonuna mysql_error(); ekleyerek hata mesajlarını yakalayabiliyoruz.

PDO kullanırken bu durum biraz değişiyor ve yerini errorInfo(); fonksiyonuna bırakıyor. Bu fonksiyon bize 3 elemanlı bir array döndürür. 0 ve 1. eleman ilgili sorgunun hata kodu, 3. elemanı ise hata mesajıdır.

Ben hata mesajlarını yakalarken empty(); fonksiyonunu kullanıyorum. Eğer hata mesajı boş ise işlem başarılıdır şeklinde. Bunu rowCount(); fonksiyonu kullanarak veya sorgu false dönüyorsa hata vardır şeklinde yapanlarda var.

PDO DELETE Sorgusu Kullanımı

[code type=”php”] $del = $db->prepare("DELETE FROM pdotablo WHERE id = ?");
$del->execute(array(
‘1’
));
$hata = $del->errorInfo();
echo empty($hata[2]) ? "Başarılı Bir Şekilde Çalıştı." : $hata[2];[/code]

Delete sorgumuzda ID degeri 1 olan verimizi başarılı bir şekilde sildik.

PDO UPDATE Sorgusu Kullanımı

[code type=”php”] $guncelle = $db->prepare("UPDATE pdotablo SET baslik=? WHERE id = ?");
$guncelle->execute(array(‘Mert Köseoğlu’,’5′));
$hata = $guncelle->errorInfo();
echo empty($hata[2]) ? "Başarılı Bir Şekilde Çalıştı." : $hata[2];[/code]

Update sorgumuzda ID degeri 5 olan baslik sütunumuzda ki verimizi “Mert Köseoğlu” olarak başarılı bir şekilde güncelledik.

PDO SELECT Kullanımı TEK (Verileri Listeletmek) 

[code type=”php”] $sql = $db->prepare("SELECT * FROM pdotablo WHERE id= ?");
$sql->execute(array(
‘5’
));

$row=$sql->fetch(PDO::FETCH_ASSOC);
echo $row[‘baslik’];

$hata = $sql->errorInfo();
echo empty($hata[2]) ? "Başarılı Bir Şekilde Çalıştı." : $hata[2];[/code]

PDO SELECT Kullanım Döngü (Verileri Listeletmek)

[code type=”php”] $sql = $db->prepare("SELECT * FROM pdotablo");
$sql->execute();

while($row=$sql->fetch(PDO::FETCH_ASSOC)) {
echo $row[‘baslik’];
}

$hata = $sql->errorInfo();
echo empty($hata[2]) ? "Başarılı Bir Şekilde Çalıştı." : $hata[2];[/code]

PDO INSERT Sorgusu Kullanımı (Veri Eklemek)

[code type=”php”] $baslik = "Deneme Baslik";
$icerik = "Deneem İçerik";
$footer = "Deneme Footer";

$sql = $db->prepare(‘INSERT INTO pdotablo (baslik,icerik,footer) VALUES (?,?,?)’);
$ekle = $sql->execute(array(

$baslik,
$icerik,
$footer,

));

$hata = $sql->errorInfo();
echo empty($hata[2]) ? "Başarılı Bir Şekilde Çalıştı." : $hata[2];[/code]

PDO Eklenen Verinin ID Degerini Almak

[code type=”php”]$id = $db->lastInsertId();
echo $id;[/code]

PDO quote() Methodu Kullanımı

[code type=”php”]$id=$db->quote($_POST["id"]);
$bag->query("SELECT * FROM okul WHERE id =’$id’");[/code]

PDO ile mysql_escape_string ve türevlerinin yerini quote() methodu aldı.