Mysql_* fonksiyonları ömrünü doldurmaya başladı , bu yüzdendir ki PHP mysql_* komutları üzerinden desteğini durdurmuş oldu ve PHP Geliştiricileri de artık bu komutların kullanımını tavsiye etmiyor. Bizde daha güvenli ve performanslı olan PDO kullanımını ele alacağız.
- Öncelikle PDO Kullanımı İçin Ne Yapmamız Gerekiyor ?
Gerekli sürücü ayarlarını aktif hale getirmeniz gerekiyor
- Debian GNU/Linux Kurulum
PHP 5 ile gelen bir modül olduğu için versiyonu güncellememiz yeterli olacaktır.
# apt-get install php5-common libapache2-mod-php5 php5-cli
komutunu girerek gerekli paketleri yüklenmesi sağlanır,
# /etc/init.d/apache2 stop # /etc/init.d/apache2 start
ardından komutları girilerek Apache servisi durdurulup yeniden başlatılması sağlanır.
- Windows Kurulum
Belli başlı sürücülerin tamamı PHP ile birlikte gelir ve php.ini dosyasında etkin kılınmaları gerekir:
Hangi veritabanı sürücüsünü kullanıyorsanız, sürücü isminin önündeki noktalı virgülü ( ; ) kaldırınız.
extension=php_pdo.dll ; extension=php_pdo_firebird.dll ; extension=php_pdo_informix.dll ; extension=php_pdo_mssql.dll extension=php_pdo_mysql.dll ; extension=php_pdo_oci.dll ; extension=php_pdo_oci8.dll ; extension=php_pdo_odbc.dll ; extension=php_pdo_pgsql.dll ; extension=php_pdo_sqlite.dll
Biz MySQL kullanacağımızdan dolayı php.ini dosyasından
extension=php_pdo.dll ve extension=php_pdo_mysql.dll
yönergelerini aktif ediyoruz.
Ve böylece PDO kullanabilmemiz için gerekenleri yapmış olduk.
- Şimdi İse PDO Nasıl Kullanılır?
- PDO Veritabanı Bağlantısı
try {
$db = new PDO("mysql:host=localhost;dbname=mtlive,charset=utf8", "root", "123456");
} catch ( PDOException $e ){
echo 'Hata: '.$e->getMessage();
}
Burada try catch yapısını kullandık ki herhangi bir hata ile karşılaşırsak daha anlaşılır ve mantıklı hata mesajları görebilelim. charset kullanarak ise karakter setini UTF-8 olarak belirledik.
- PDO Select İşlemi (Döngü İle Verileri Listelemek)
$sql = $db->prepare("SELECT * FROM icerik");
$sql->execute();
while($row=$sql->fetch(PDO::FETCH_ASSOC))
{
echo $row['icerik_baslik']."
";
}
Burada ise icerik adındaki tablodan icerik_baslik sütunundaki verileri çekerek ekrana yazdırdık.
- PDO Select İşlemi (Tek Veri Çekmek)
$id = $db->quote($_GET['id']);
$query = $db->query("SELECT * FROM icerik WHERE id= ?")->fetch(PDO::FETCH_ASSOC);
$query ->bindParam(1, $id );
if ( $query ){
echo $query['icerik_baslik'];
}
Burada da $_GET ile gelen id değerini icerik tablosundaki id değerine eşlitleyip içerisindeki icerik_baslik sütunundaki veriyi çekiyoruz.
- PDO insert İşlemi (Veri Eklemek)
$baslik = "İçerik Baslik";
$icerik = "İçerik Açıklama";
$isim= "Mücahit TOPAL";
$sql = $db->prepare('INSERT INTO icerik(baslik,icerik_baslik,isim) VALUES (?,?,?)');
$ekle = $sql->execute(array(
$baslik,
$icerik,
$isim
));
if ( $insert )
{
$last_id = mysql_insert_id();
echo "Kayıt ekleme işlemi başarılı!";
}
$baslik , $icerik ve $isim değişkenlerinden gelen değerleri içerik tablosundaki icerik_baslik , icerik , isim sütunlarına kaydetmiş olduk.
- PDO delete İşlemi (Toplu Veri Silmek)
$delete = $db->exec("DELETE FROM icerik");
echo 'Toplam '.$delete.' kayıt silindi!';
icerik tablosundaki tüm kayıtları silmiş olduk.
- PDO delete İşlemi (Tek Veri Silmek)
$query = $db->prepare("DELETE FROM icerik WHERE id = :id");
$delete = $query->execute(array(
"id" => $_GET['id']
));
$_GET ile gelen id değerine göre icerik tablosundan gelen id değerine sahip verinin kaydını silmiş olduk.
- PDO update İşlemi (Veri Güncelleme)
$baslik = "İçerik Baslik";
$icerik = "İçerik Açıklama";
$isim= "Mücahit TOPAL";
$id = $_GET['id'];
$query = $db->prepare("UPDATE icerik SET icerik_baslik=? , icerik=? ,isim=? WHERE id=?");
$update = $query->execute(array(
$baslik,
$icerik,
$isim,
$id
));
if ( $update ){
echo "Kayıt güncelleme başarılı!";
}
$_GET ile gelen id değerine göre icerik tablosunda bulunan kayıt satırını $baslik , $icerik ve $isim değişkenlerinden gelen değerleri karşılığı gelen icerik_baslik , icerik , isim sütunlarına güncellemiş olduk.
- PDO Veritabanı Bağlantı Sonlandırma
$db = null;
Böylece basit örnekler ile PDO kullanımını incelemiş olduk.
Güzel Projelerde Kullanabilmeniz Dileğiyle. Sevgiyle Kalın...
