Arkadaşlar nette bulduğum Stefan Gabos adlı Romanyalı bir arkadaşa ait olan classları sizlerle paylaşmak istedim.Biliyorum ki genel olarak herkes EZSQL sınıfıı kullanıyor zamanında benim de olduğum gibi. Vereceğim sınıf gerçekten oldukça işime yarayan bir sınıf umuyorum ki sizlerinde işine yarayacağı bir kaç class yazmış kendileri. Daha önce zebra database classı hakkında bir makale paylaşmıştım ama r10 veritabanı uçunca makale de uçtu.

Zebra Database
Link: http://stefangabos.ro/php-libraries/zebra-database/

Zebra database oldukça gelişmiş tek dosyadan oluşan object oriented mysql database classıdır.
Sorguları ister dosya şeklinde ister memcache olarak cachelemenize olanak sağlar oldukça iyidir ben büyük bir deneme yaptım fark ediyor.
Gelelim en güzel yanına classın kendine has debug özelliği vardır mysql sorgularınızın döndürdüğü sonuçları, etkilediği tabloları ve birçok mysql çıktısını anlık olarak detaylı bir şekilde görmenizi sağlıyor. Ayrıca error reporting E_ALL yapsanız bile hiçbir mysql hatasını ekrana yazdırmıyor, direkt debug ekranından görebiliyorsunuz.
Debug çubuğu ekranın en tepesinde javascript destekli olarak görülebiliyor, sadece debug aktif edildiğinde gözükür.



Burada SELECT sorgusunun debug ekranındaki çıktısını görüyoruz



Ayrıca Backtrace denen özelliği sayesinde hangi sorgunun hangi dosyada kaçıncı satırdan çağrıldığını görebilirsiniz.



Örnek kullanımı
<?php

require 'dosya/yolu/Zebra_Database.php';

$db = new Zebra_Database();

// debug aktifleştir
$db->debug = true;

$db->connect('host', 'username', 'password', 'database');

// kodlamanız burada

// aşağıdaki kod parçacığı dosyalarınızın her zaman sonunda bulunmalıdır

$db->show_debug_console();

?>
Basit bir SELECT sorgusu
<?php

// $criteria mysql injection açıklarından otomatik kaçırılıyor ve
// soru işareti ? yerine otomatik dolduruyor
$db->select(
    'column1, column2',
    'table',
    'criteria = ?',
    array($criteria)
);

// bundan sonra tek bir "fetch" yeterli

// tek bir arrayda toplamak için
$records = $db->fetch_assoc_all();

// yada teker teker kendine has arraylara atamak için aşağıdaki kodu kullanabilirsiniz
while ($row = $db->fetch_assoc()) {
    // loop içi kodlama
}
?>
Bir INSERT işlemi

<?php

$db->insert(
    'tablo',
    array(
        'sutun1' => $deger1,
        'sutun2' => $deger2,
    )
);

?>
Ve son olarak UPDATE işlemi
<?php

// $criteria mysql injection açıklarından otomatik kaçırılıyor ve
// soru işareti ? yerine otomatik dolduruyor
$db->update(
    'tablo',
    array(
        'sutun1' => $deger1,
        'sutun2' => $deger2,
    ),
    'criteria = ?',
    array($criteria)
);

?>