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...