Merhaba arkadaşlari
Pek çok arkadaşımız framework kullanmadığında veritabanı işlemleri için kullandığı belirli sınıflar olabiliyor.Bunlar içinde performans olarak berbat yada anlaşılması güç olanlar olabiliyor yada hiç kullanmayanlarda oluyor

Bu tarz sistemler geliştiren arkadaşlar için Performansı ve yazılım mimarisi düzgün,istenildiğinde Memcache kullanılabilen (tek parametre ile) kendimin geliştirdiği bir veritabanı sınıfı'dır MPSQL.


SQL injection Elvada!
PDO mimarisi ile artık sql injection'a veda edin
MPSQL Nasıl Kullanılır ?

MPSQL ‘de connection oluşturma işlemi Singleton Mimarisi ile kurgulanmıştır.PDO sınıfından oluşturulan obje defalarca üretilmez.

Kendi içerisinde sorgu sonuçlarını isterseniz cache’den isterseniz anlık result ‘lar halinde alabilirsiniz.

Konfigürasyon

settings/config.php içerisinde kendinize göre ilgili Memcache ve Veritabanı bilgilerinizi ayarlayabilirsiniz.

Projenize MPSQL ‘i Dahil Etme

Kullanmak istediğiniz projenizde ilgili yere taşıdıktan sonra ,
require_once dirname(__FILE__)."/settings/config.php";
require_once dirname(__FILE__)."/class/MPSQL.class.php";
diyerek projenize dahil edebilirsiniz.

MPSQL Kullanımı ve Metotlar

_getAll() : Sorgunuzu ve parametrelerinizi gönderdikten sonra belirlediğiniz fetch tipine uygun result’u object yada array olarak döndürür.
_getRow() : Sorgunuzu ve parametrelerinizi gönderdikten sonra belirlediğiniz fetch tipine uygun tek bir row getirir.
_execQuery() : UPDATE – DELETE işlemleri için yazdığınız Querylerinizi execQuery metodu kullanılır.Yapılan işlem başarılı olduğunda true döner.
_setup(): MPSQL ‘a connection sağlamak ve obje üretmek için kullanıcağınız public static metod.
_setFetchType() : Query sonuçlarınızı OBJECT yada ARRAY olarak almak isterseniz buradan set edebilirsiniz.(MPSQL::FETCH_OBJECT ve FETCH_ARRAY olmak üzere 2 parametre bulunuyor)
setUseCache(): Eğer Memcache ile beraber kullanmak isterseniz bu metoda true parametresini göndermeniz yeterli.(Şuanlık Memcache expire time tek yerden set ediliyor.İleride tüm metodlardan özel expire time set edilebilecek.)
deleteMemcache(): Update ,Delete ,Insert gibi işlemlerinizden sonra cache’i silip tekrar oluşturmak isterseniz bu metodu o işlemlerinizin başarılı olduğu durumlarda çalıştırmanız yeterli.

Örnek Kullanımlar

getAll metodunu kullanarak ile birden fazla kayıdın döndüğü bir örnek.

Alıntı
<?php
require_once dirname(__FILE__)."/settings/config.php";
require_once dirname(__FILE__)."/class/MPSQL.class.php";

try {
MPSQL::setup(MYSQL_HOST, MYSQL_DB, MYSQL_USER, MYSQL_PASS);
MPSQL::setFetchType(MPSQL::FETCH_OBJECT);
MPSQL::setUseCache(true);

$query = "SELECT * FROM articles";
$result = MPSQL::getAll($query);
echo "<pre>";
print_r($result);
echo "</pre>";

} catch (Exception $e) {
echo 'Caught exception: '.$e->getMessage();
}?>
Tek bir kayıdın döndüğü bir örnek yapalım.Örneğin id ‘si 1 olan bir kayıt çekelim.Query’inizi string bir değişkene atayabilir yada direk metodun içerisindeki parametre kısmından gönderebilirsiniz.

Alıntı
<?php
require_once dirname(__FILE__)."/settings/config.php";
require_once dirname(__FILE__)."/class/MPSQL.class.php";

try {
MPSQL::setup(MYSQL_HOST, MYSQL_DB, MYSQL_USER, MYSQL_PASS);
MPSQL::setFetchType(MPSQL::FETCH_OBJECT);
MPSQL::setUseCache(true);

$query = "SELECT * FROM articles WHERE id=:id";
$result = MPSQL::getRow($query,array(':id' => '1'));
print_r($result);

} catch (Exception $e) {
echo 'Caught exception: '. $e->getMessage();
}?>
Daha fazla bilgi için..


Kullanıp herhangi bir sorun yaşayan olursa bana bildirebilir.
İyi çalışmalar