PHP ile PDO Kullanımı

Veritabanı Bağlantısı
PDO da veritabanı bağlantısı;
<?php
try {
$db = new PDO("mysql:host=localhost;dbname=test", "root", "123456");
} catch ( PDOException $e ){
print $e->getMessage();
}
?>
PDO ile bağlanırken try catch yapısını kullanmak zorunda değildik ancak hatalı bilgileri girdiğimiz zaman veyahutta bir sorun olutuğu zaman bize hatanın asıl kaynağını göstermektedir.
Karakter Setini Ayarlama:
$db = new PDO("mysql:host=localhost;dbname=test;charset=utf8", "root", "123456");
veya
$db->query("SET CHARACTER SET utf8");
SELECT İşlemi (Toplu)
PDO da select işlemi;
$query = $db->query("SELECT * FROM TABLOADI", PDO::FETCH_ASSOC);
if ( $query->rowCount() ){
foreach( $query as $row ){
print $row['adi']."<br>";
}
}
SELECT İşlemi (Tek)
$id = “1”;
$query = $db->query(“SELECT * FROM TABLOADI WHERE id = ‘{$id}'”)->fetch(PDO::FETCH_ASSOC);
if ( $query ){
print_r($query);
}
NOT: Teki bir veri çekeceksek eğer misal TABLOADI tablosunda bulunan id‘si 1 olan kullanıcın şifresini istiyorsak eğer;
$id = "1";
$query = $db->query("SELECT * FROM TABLOADI WHERE id = '{$id}'")->fetch(PDO::FETCH_ASSOC);
if ( $query ){
echo $query["sifre"];
}
Şeklinde Kullanmamız yeterlidir.
INSERT İşlemi
$query = $db->prepare("INSERT INTO uyeler SET
isim = ?,
sifre = ?,
mail = ?");
$insert = $query->execute(array(
"Ali Şahan Yalçın", "123456", "info@alisahanyalcin.com"
));
if ( $insert ){
$last_id = $db->lastInsertId();
print "insert işlemi başarılı!";
}
NOT: Ayrıca örnekte ? yerine key (anahtar) isimler belirtipte ona göre dizide değer gönderebilirdik.. Yani şu şekilde bir örnekte yapabilirdik;
$query = $db->prepare("INSERT INTO uyeler SET
isim = :kadi,
sifre = :sifre,
mail = :eposta");
$insert = $query->execute(array(
"sifre" => "123456",
"eposta" => "info@alisahanyalcin.com",
"kadi" => "Ali Şahan Yalçın",
));
if ( $insert ){
$last_id = $db->lastInsertId();
print "insert işlemi başarılı!";
}
Peki bunun ne farkı var?
diye soracak olursanız bu şekilde execute metodunda belirttiğimiz dizideki sıranın bir önemi kalmaz. İstediğiniz key değerini istediğiniz sırada yazabilirsiniz.
UPDATE İşlemi
PDO‘a update işlemi;
$query = $db->prepare("UPDATE uyeler SET
isim = :yeni_isim
WHERE isim = :eski_isim");
$update = $query->execute(array(
"yeni_isim" => "ALi Şahan Yalçın",
"eski_isim" => "Ali Şahan"
));
if ( $update ){
print "güncelleme başarılı!";
}
DELETE İşlemi (Toplu)
$delete = $db->exec("DELETE FROM uyeler");
print 'Toplam '.$delete.' üye silindi!';
DELETE İşlemi (Tek)
$query = $db->prepare("DELETE FROM uyeler WHERE id = :id");
$delete = $query->execute(array(
'id' => $_GET['id']
));
Veritabanı Bağlantısını Sonlandırma
PDO da bağlantı sonlandırma işlemi;
$db = null;
Yorumlar