TitanDB, PHP üzerindeki pdo kütüphanesini kullanarak, database işlemlerinin hızlı ve düzenli şekilde yapılmasını sağlayan bir kütüphanedir. Adından da anlaşılacağı üzere Titan Framework'ün yeni versiyonunda da database plugini olarak kullanılacaktır. Mevcut sürüm ile nasıl entegre edileceğini aşağıdaki bağlantıda bulunan yazımda inceleyebilirsiniz;

http://www.turankaratug.com/blog/php/28-titandb-kutuphanesini-titan-framework-ile-kullanma

- TitanDB'yi kullanabilmeniz için sunucunuzdaki PDO eklentilerini kurmanız ve aktif hale getirmeniz gerekir.

- TitanDB, MySQL, PostrgreSQL, SQLite ve Oracle veritabanlarını destekler.

- TitanDB üzerinden pdo kütüphanesinin orjinal methodlarına erişebilirsiniz. Bununla ilgili örnek kullanım aşağıdaki gibidir;

$db->pdo->prepare('SORGU');

Kurulum

Kütüphaneyi composer ile kurmak için aşağıdaki kodu çalıştırmanız yeterlidir;

$ composer require tkaratug/titan-db:dev-master

GitHub

Kütüphaneye Github üzerinde aşağıdaki bağlantıdan ulaşabilirsiniz;

https://github.com/tkaratug/TitanDB

Kullanımı

Kurulumun ardından TitanDB classını aşağıdaki şekilde sayfanıza dahil edin;

require 'vendor/autoload.php';

$config = [
    'db_driver'     => 'mysql',
    'db_host'       => 'localhost',
    'db_user'       => 'kullanici_adi',
    'db_pass'       => 'sifre',
    'db_name'       => 'dabase_adı',
    'db_charset'    => 'utf8',
    'db_collation'  => 'utf8_general_ci',
    'db_prefix'     => '' 
];

$db = TitanDB::init($config);

Tek Satır Veri Çekme

// İstenilen kolonları seçmek için
$db->select('kolon1, kolon2, ...')
   ->from('tablo')
   ->get()
   ->row();
   
$db->select('kolon1 as k1, kolon2 as k2, ...')
   ->from('tablo as t1')
   ->get()
   ->row();
   
// İlgili kayıttaki tüm kolonları seçmek için
$db->get('tablo')->row();

Çoklu Veri Çekme

// İstenilen kolonları seçmek için
$db->select('kolon1, kolon2, ...')
   ->from('tablo')
   ->get()
   ->results();
   
$db->select('kolon1 as k1, kolon2 as k2, ...')
   ->from('tablo as t1')
   ->get()
   ->results();
   
// İlgili kayıttaki tüm kolonları seçmek için
$db->get('tablo')->results();

JOIN Kullanımı

// LEFT JOIN kullanarak çoklu veri çekme örneği
$db->select('t1.kolon1, t1.kolon2, t2.kolon3, t2.kolon4')
   ->from('tablo_1 as t1')
   ->join('tablo_2 as t2', 't1.id=t2.id', 'left')
   ->get()
   ->results();

WHERE Kullanımı

$db->select('kolon1, kolon2')
   ->from('tablo')
   ->where('id', 5)
   ->get()
   ->row();
   
$db->select('kolon1, kolon2')
   ->from('tablo')
   ->where('id', 5, '>')
   ->get()
   ->results();

// AND WHERE 
$db->select('ad, soyad')
   ->from('tablo')
   ->where('yas', 20, '>')
   ->where('il', 34)
   ->get()
   ->results();

// OR WHERE
$db->select('ad, soyad')
   ->from('tablo')
   ->where('yas', 20, '>')
   ->or_where('dogum_tarihi', 1996, '>')
   ->get()
   ->results();

ORDER BY ve LIMIT Kullanımı

$db->select('ad, soyad')
   ->from('tablo')
   ->order_by('yas', 'asc')
   ->limit(20)   
   ->get()
   ->results();

GROUP BY Kullanımı

$db->select('ad, soyad, kitap, COUNT(*)')
   ->from('tablo')
   ->group_by('kitap')   
   ->get()
   ->results();

HAVING Kullanımı

$db->select('ad, soyad, kitap, COUNT(*) as count')
   ->from('tablo')
   ->group_by('kitap')
   ->having('count', 15, '>')
   ->get()
   ->results();

LIKE / NOT LIKE Kullanımı

$db->select('ad, soyad')
   ->from('tablo')
   ->like('soyad', '%OĞLU')
   ->get()
   ->results();

// OR LIKE Kullanımı
$db->select('ad, soyad')
   ->from('tablo')
   ->like('ad', 'AHMET%')
   ->or_like('ad', 'MEHMET%')
   ->get()
   ->results();

// NOT LIKE Kullanımı
$db->select('ad, soyad')
   ->from('tablo')
   ->not_like('ad', 'AHMET%')
   ->get()
   ->results();

IN / NOT IN Kullanımı

$db->select('ad, soyad')
   ->from('tablo')
   ->in('sehir', [9,35,20,48])
   ->get()
   ->results();

// NOT IN Kullanımı
$db->select('ad, soyad')
   ->from('tablo')
   ->not_in('sehir', [9,35,20,48])
   ->get()
   ->results();

INSERT Kullanımı

$veriler = [
    'ad'    => 'John',
    'soyad' => 'Doe',
    'sehir' => 34
];

$db->insert('tablo', $veriler);

UPDATE Kullanımı

$veriler = [
    'ad'    => 'John',
    'soyad' => 'Doe',
    'sehir' => 34
];

$db->where('id', 15);
$db->update('tablo', $veriler);

DELETE Kullanımı

$db->where('id', 15);
$db->delete('tablo');

LAST INSERT ID

$veriler = [
    'ad'    => 'John',
    'soyad' => 'Doe',
    'sehir' => 34
];

$db->insert('tablo', $veriler);
echo $db->insert_id();

Toplam Kayıt Sayısını Bulma

$db->select('*')
   ->from('tablo')
   ->where('yas', 20, '>')
   ->get()
   ->results();

echo $db->num_rows();

Son Çalıştırılan Sorguyu Bulma

echo $db->last_query();