PDO MySQL Basit Class Yapısı

#1
Merhabalar,

Forumun açılması ile birlikte kayıt olduk. Uzun zamandır bir çok forum olmasına rağmen tüm forumlarda aktif olmayı kendimce reddettim. Ama burası ilginç bir şekilde beni içeri çekti kayıt oldum ve yapabileceğim en büyük iyiliklerden birisi olan basit kullanımlı, kendi yetiştirdiğim elemanlarıma, öğrencilerime kullandırdığım; kendi yazmış olduğum PDO MySQL sınıfını sizlerle buluşturmayı tercih ediyorum. Yeni başlayan, PDO mantığını çok iyi bilmeyenler için, çok rahat bir şekilde kullanabilecekleri basit yapılı sınıfı aşağıda paylaşıyorum.

Dışarıda paylaşacak olan olursa en azından bir teşekkürü çok görmesin.
__________________

PDO MySQL Basit Class Kodları

PHP:
<?php
class db
{
    public $baglantivarmi;
    protected $datab;
    public function __construct($kullaniciadi, $sifre, $host, $dbname, $ekayarlar=array()){
        $this->baglantivarmi = true;
        try {
            $this->datab = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $kullaniciadi, $sifre, $ekayarlar);
            $this->datab->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $this->datab->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
        }
        catch(PDOException $e) {
            $this->baglantivarmi = false;
            throw new Exception($e->getMessage());
        }
    }
/*
 created by ncode - www.nurettinozen.com | www.digiland.com.tr 
*/
    public function sonlandir(){
        $this->datab = null;
        $this->baglantivarmi = false;
    }
/*
 created by ncode - www.nurettinozen.com | www.digiland.com.tr 
*/
    public function vericek($query, $parametreler=array()){
        try{
            $stmt = $this->datab->prepare($query);
            $stmt->execute($parametreler);
            return $stmt->fetch();
        }catch(PDOException $e){
            throw new Exception($e->getMessage());
        }
    }
/*
 created by ncode - www.nurettinozen.com | www.digiland.com.tr 
*/
    public function verilericek($query, $parametreler=array()){
        try{
            $stmt = $this->datab->prepare($query);
            $stmt->execute($parametreler);
            return $stmt->fetchAll();
        }catch(PDOException $e){
            throw new Exception($e->getMessage());
        }
    }
/*
 created by ncode - www.nurettinozen.com | www.digiland.com.tr 
*/
    public function ekle($query, $parametreler){
        try{
            $stmt = $this->datab->prepare($query);
            $stmt->execute($parametreler);
            //return $this->datab->lastInsertId(); Kontrol edilmesi gerekiyor.
        }catch(PDOException $e){
            throw new Exception($e->getMessage());
        }
    }
/*
 created by ncode - www.nurettinozen.com | www.digiland.com.tr 
*/
    public function eklesoneklenenidyiver($query, $parametreler){
        try{
            $stmt = $this->datab->prepare($query);
            $stmt->execute($parametreler);
            return $this->datab->lastInsertId();
        }catch(PDOException $e){
            throw new Exception($e->getMessage());
        }
    }
/*
 created by ncode - www.nurettinozen.com | www.digiland.com.tr 
*/
    public function guncelle($query, $parametreler){
        return $this->ekle($query, $parametreler);
    }
/*
 created by ncode - www.nurettinozen.com | www.digiland.com.tr 
*/
    public function sil($query, $parametreler){
        return $this->ekle($query, $parametreler);
    }
/*
 created by ncode - www.nurettinozen.com | www.digiland.com.tr 
*/
    public function say($tablo,$kural){
        try{
            $sql = "SELECT count(*) FROM `".$tablo."` ".$kural."";
            $result = $this->datab->prepare($sql);
            $result->execute();
            $saysonuc = $result->fetchColumn();
            return $saysonuc;
        }catch(PDOException $e){
            throw new Exception($e->getMessage());
        }
    }
/*
 created by ncode - www.nurettinozen.com | www.digiland.com.tr 
*/
    public function tablokontrol($tabloadi){
        try {
            $result = $this->vericek("SELECT 1 FROM $tabloadi LIMIT 1");
        } catch (Exception $e) {
            return FALSE;
        }
        return $result !== FALSE;
    }
/*
 created by ncode - www.nurettinozen.com | www.digiland.com.tr 
*/
    public function tablolustur($table,$dissql){
        try {
            $sql ="CREATE table $table($dissql);" ;
            $this->datab->exec($sql);
        } catch(PDOException $e) {
            return false;
        }
    }
/*
 created by ncode - www.nurettinozen.com | www.digiland.com.tr 
*/
    public function tablosil($table){
        try {
            $sql ="DROP TABLE $table";
            $this->datab->exec($sql);
        } catch(PDOException $e) {
            return false;
        }
/*
 created by ncode - www.nurettinozen.com | www.digiland.com.tr 
*/

    }

}

?>

Kullanımı :

PHP:
 /*veritabanı bağlantısı  (Altta Tekrar Ayrı verdim) */
    $database = new db("root", "", "localhost", "veritabanıismi", array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));

    /*Tek bir değeri çekmek istediğimiz zaman ($oku=mysql_fetch_assoc("...") yerini tutuyor)*/
    $vericek = $database->vericek("SELECT * FROM sitegenel WHERE title =? and footer=?", array("Digiland Yazılım ve Bilgi Teknolojileri A.Ş.","footerasdas"));

    /*Bir çok satırı çekmek istersek*/
    $verilericek = $database->verilericek("SELECT * FROM sitegenel");

    /*Kayıt eklemek için*/
    $ekle = $database ->ekle("INSERT INTO sitegenel (admin, email) VALUES (?, ?)", array("admin", "info@nurettinozen.com"));

    /*Güncelleme işlemi*/
    $guncelle = $database->guncelle("UPDATE sitegenel SET title = ?, genelkeywords = ? WHERE id = ?", array("admin", "deneme@deneme", "1"));

    /*Silme işlemi*/
    $sil = $database->sil("DELETE FROM sitegenel WHERE id = ?", array("1"));
    veritabanı sonlandır
    $database->sonlandir();

    /*Arama İşlemi*/
    $query = "SELECT * FROM `xxxx` WHERE (`xxxxxxx` like :queryString or `xxxxx` like :queryString) ";

    /*Sayma işlemi*/
    $say= $database->say("sitegenel","where keywords='1'");

    /*veritabanı bağlantısını kontrol*/
    if($database->baglantivarmi){
    echo "Bağlı";
    }else{
    echo "Bağlı değil";
    }


Bağlantı Cümlesi :

PHP:
/* config gibi bir dosya içerisinde class include edilerek kullanılır */
$database = new db("VERİTABANI KULLANICI", "VERİTABANI ŞİFRE", "localhost", "VERİTABANI ADI", array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
Bu Konu Nurettin ÖZEN Tarafından Seo Big üyeleri için paylaşılmıştır.
Alıntı yapacaklar en azından kimden alıntı olduğunu yazsınlar, emeğe saygılı olalım.

İyi çalışmalar,