Kadir Kasim | Freelance Code Developer

kadir kasim


Yıldız Teknik Üniversitesi Mezunu

Matematik Mühendisi

Yazılımcı

California - Kütahya - İstanbul - Maryland güzargahında 29 yıllık göçebe bir yaşam

Kız labrador babası

Kitapsever keyif insanı

'Yaşamın anlamı' gece duyumsanır ve sorgulanır. Kimse bunu öğle yemeği sırasında tartışmaz. Yaşam, gecenin konusudur.

Gündüz Vassaf
Cehenneme Övgü

PHP'de 5.1 sürümünden itibaren PHP Data Object (PDO) etkinlik kazanmış ve kullanıcılarına daha tutarlı olan bu yapıyı tavsiye etmektedir. Ayrıca PDO'yu nesne yönelimli (OOP) arayüze sahip bir çok veritabanı desteklemektedir.


Peki mysqli'li ifadelerin yerini alan bu veritabanı eklentisi nasıl kullanılmakta ?


Öncelikle PHP sürümünüz 5.1 den büyük olmasına rağmen PDO eklentiniz çalışmıyorsa aktif hale getirmeniz gerekmektedir. Bunun için yapmanız gereken php.ini dosyanız içerisinde ;extension=php_pdo_mysql.dll yazısının önündeki ";" noktalı virgül işaretini kaldırmanız.


Artık PDO komutlarımızı kullanabileceğimize göre MySQL için veritabanı bağlantımızı yapalım..



    $username = "kullanici";
    $password = "sifre";

    try {
        $db = new PDO('mysql:host=localhost;dbname=database_ismi;charset=utf8', $username, $password);
    } catch (Exception $e) {
        print "Hata!: " . $e->getMessage();
        die();
    }


Burada tabi ki ' try catch 'i kullanmak zorunda değildik ancak PDO exceptionlar ile bize çok daha anlamlı hata mesajları gösterebilmektedir. Bu yüzden kullanımını kesinlikle tavsiye ediyorum.


PDO ile veritabanı karakter setini ayarlamak istersek :


     $db = new PDO("mysql:host=localhost;dbname=db_name;charset=utf8",$username,$password);

yada



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

SELECT işlemi için iki farklı durum mevcut
Eğer tek bir veri çekeceksek :


   $id = $_GET['id'];
   $select = $db ->query("SELECT * FROM konular WHERE konu_id = '$id'")->fetch(PDO::FETCH_ASSOC);
   if($select){
	print_r($select);
   }

Eğer toplu veri çekeceksek :



   $select = $db ->query("SELECT * FROM kategori", PDO::FETCH_ASSOC);
   if ( $select->rowCount() ){ 
           $toplam = $select->rowCount();  
/* Toplam veri sayısını öğrenmek için rowCount() methoduni kullanabilirsiniz.. */
	   foreach( $select as $row ){
		print $row['kategori_adi'];		
  	   }
   }

INSERT işlemi için :



   $query = $db->prepare("INSERT INTO uyeler(uye_adi , uye_sifre) VALUES (:kadi , :sifre);
   $insert = $query->execute(array(
	"sifre" => "123456",
	"kadi" => "kadirkasim"
   ));
   if($insert){
        $eklenen_id = $db->lastInsertId(); 
/* Eklenen Son elemanın id'sini verir */
	print "işlem başarılı";
   }

UPDATE işlemi için;



   $query = $db->prepare("UPDATE uyeler SET
	uye_adi = :yeni_kadi
	WHERE uye_adi = :eski_kadi");
   $update = $query->execute(array(
	"yeni_kadi" => "kadir",
	"eski_kadi" => "kadirkasim"
   ));
   if($update){
	print "güncelleme başarılı";
   }

DELETE işlemi için iki farklı durum mevcut
Eğer tek bir veri sileceksek :


   $query = $db->prepare("DELETE FROM kategori WHERE kategori_id = :id");
   $delete = $query ->execute(array(
	'id' => $_GET['id']
   ));

Eğer toplu veri sileceksek


   $delete = $db->exec("DELETE FROM kategori");
   print 'TOPLAM:'.$delete.' kategori silindi..';

Bağlantımızı kapatmak için ise;


   $db = null;

Tartışma Başlatmak İster Misiniz ?

Eposta adresiniz paylasılmayacaktır..

Daha Önceki Yazılar