• Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha fazla bilgi edin.

AlpSQL Kullanımı

Konuyu Okuyan Kişiler (0)

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#1
AlpSQL Nedir ?
AlpSQL inforesim (benim :p) tarafımdan yazılmış bir veritabanı sınıfıdır. Sınıf daha çok kişisel ihtiyaçlarımı karşılamak için yazdım.

Basitçe mantığı, Yolladığınız sorguya özel, cache yap - cache yapma seçeneği bulunmaktadır. + Olarak sorguyu farklı klasör de cacheleyebiliyorsunuz. Şu an geliştirme aşamasındadır, İnforesim Oyun Scripti v1 geliştirmekteyim.

Sınıf Kodları (Bazı hostlar da, addslashes ve stripslashes ile İlgili sorun yaşadığım için fonksiyon haline getirdim) ;

PHP:
<?php
class AlpSQL{
    function __construct($vt_isim,$vt_kullanici,$vt_parola,$vt_sunucu,$vt_cache_sure){
		if(empty($vt_isim)){
			exit("<strong>AlpSQL :</strong> Database Bilgilerini Giriniz (database/config.php).");
		}
		if(empty($vt_sunucu)){
			$vt_sunucu = "localhost";
		}
        return $this->connect($vt_isim,$vt_kullanici,$vt_parola,$vt_sunucu,$vt_cache_sure);
    }
    function connect($alp_database,$alp_username,$alp_password,$alp_sunucu,$alp_cache_sure){
        $this->sure = $alp_cache_sure;
        $baglan = mysql_connect($alp_sunucu,$alp_username,$alp_password) or die("<strong>AlpSQL :</strong> MYSQL Bağlanırken Hata Oluştu ".mysql_error());
        $baglan2 = mysql_select_db($alp_database,$baglan) or die("<strong>AlpSQL :</strong> Veritabanına Bağlanırken Hata Oluştu : ".mysql_error());
		mysql_query("SET NAMES 'utf8'"); 
		mysql_query("SET CHARACTER SET utf8"); 
		mysql_query("SET COLLATION_CONNECTION = 'utf8_general_ci'");
    }
    function temizle($klasor){
        $anadizin = $_SERVER["DOCUMENT_ROOT"]."/cache/".$klasor;
        if ($kaynak = opendir($anadizin)) {
            while (false != ($file = readdir($kaynak)))
            {
                unlink($anadizin."/".$file);
            }
        }
    }
    function addslashes($degisken){
        $degisken = str_replace("'","\\'",$degisken);
        $degisken = str_replace('"','\\"',$degisken);
        return $degisken;
    }
    function stripslashes($degisken){
        $degisken = str_replace("\\","",$degisken);
        return $degisken;
    }
    function cache($sorgu,$sonuc,$cache,$dizin){
        $dizin2=$_SERVER["DOCUMENT_ROOT"]."/cache/".$dizin."/".md5($sorgu."-".$dizin);
        if($sonuc==""){
            if (file_exists ($dizin2)) {
                $dosya = json_decode(fgets(fopen($dizin2,"r")));
                $sure = $dosya->zaman+60*$this->sure;
                if($sure<=time()){
                    unlink($dizin2);
                }
                unset($dosya->zaman);
                return $this->stripslashes(get_object_vars($dosya));
            }else{
                return "false";
            }
        }else{
            if($cache==true and $sorgu!="" and $sonuc!="" and $cache!="0" or $cache!="" and $dizin!=""){
                $sonuc["zaman"] = time();
                $sonucx    = json_encode($sonuc);
                $baglan=@fopen ("$dizin2",'a');
                if (!$baglan) {
                    echo "<strong>AlpSQL :</strong> Dosya Oluşturulamadı ! ".$dizin." Varlığını ve Yazılabilir Olduğuna Emin Olun...";
                    exit();
                }
                if (!fputs ($baglan,$sonucx) ){
                    echo "<strong>AlpSQL :</strong> Dosya Yazılamadı ! ".$dizin." Yazılabilir olduğundan emin olun...";
                    exit();
                }else{
                    unset($sonuc["zaman"]);
                    return $this->stripslashes($sonuc);
                }
                fclose($baglan);
            }
        }
    }
    function sorgu($sorgu,$cache,$dizin){
        if($cache=="1"){
        $alp_query = $this->cache($sorgu,$alp_query,$cache,$dizin);
        if($alp_query=="false"){
            $alp_queryx = array();
            $query = mysql_query($sorgu);
            while($alp_queryx[] = mysql_fetch_object($query));
                $alp_queryx = array_filter($alp_queryx);
                $alp_query = $this->cache($sorgu,$alp_queryx,$cache,$dizin);
        }
        }else{
        $alp_queryx = array();
        $query = mysql_query($sorgu);
        while($alp_queryx[] = mysql_fetch_object($query));
            $alp_query = array_filter($alp_queryx);
        }
        return $this->stripslashes($alp_query);
    }
    function gir($sorgu){
        $veri = mysql_query($sorgu);
        return $veri;
    }
}
?>
Ayar dosyası ise

PHP:
<?php
include("alpsql.php");
$vt_kullanici = ""; // Veritabanı Kullanıcı Adı
$vt_parola    = ""; // Veritabanı Şifre
$vt_isim      = ""; // Veritabanı ismi
$vt_sunucu    = ""; // Veritabanı Sunucusu (Default : localhost)
$vt_cache_sure= "3"; // Veritabanı Cache Süresi (Verilen değer dakika cinsinden)
$alp = new AlpSQL($vt_kullanici,$vt_parola,$vt_isim,$vt_sunucu,$vt_cache_sure);
?>
AlpSQL Kullanımı
İlk olarak, Tüm sorgular mysql_fetch_object olarak yapılmaktadır ve Json ile cache işlemi gerçekleşmektedir. Örnek bir tekil veri çekmek için (where id='1') tarzı (sınıf $alp değişkeni ile başladığı varsayılmıştır)

$alp->sorgu("sorgu","cache durum","cache klasör");

Not : cache klasörü, cache klasörünün altında açmanız lazım.

Cache ->oyun gibi.

PHP:
$vericek = $alp->sorgu("select id from webmasterlar where uye='inforesim'","cache durum 1 ise cachele, 0 ise cacheleme","cachelenecek klasör");
echo $vericek[0]->id;
Şeklinde kullanılıyor ([0] unutmayın).

Çoğul verilerde ise

PHP:
$vericek = $alp->sorgu("select id from webmasterlar","cache durum 1 ise cachele, 0 ise cacheleme","cachelenecek klasör");
foreach($vericek as $veri){
echo $veri->id;
}
Şeklinde kullanabilirsiniz. Veri girmek için ise

PHP:
$verigir = $alp->gir("insert into webmasterlar () values()");
Şeklinde girebilirsiniz. Sonuçları ise,

PHP:
<?php
if($veri){
echo "olumlu";
}else{
echo "olumsuz";
}
Şekilde kullanabilirsiniz.

Sistem de, Her sorguyu belirli klasöre cachelenmesini sağlayabilirsiniz. Yani örnek oyun scripti yazıyorsanız

Oyun bilgilerini, oyun klasörüne
Üye bilgilerini, uye klasörüne kaydını gerçekleştirerek performans artışı gözlemleyebilirsiniz (Yeni üye eklenirse, Sadece üye klasörü boşalır. Bu sayede sitenin diğer kısımları etkilenmez).

Ayrıca, Bazı sorgular sürekli random olduğu için cachelenmemesi gerekmektedir. Bu sistem ile Sorgunun kayıt altına alınıp / alınmamasını seçebiliyorsunuz.

Geliştirilmektedir, Hata veya İsteklerinizi iletirseniz ekleriz.
 

1yusuf1

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
7
Beğeniler
0
#2
tum veritabanı bılgılerını gırdım
AlpSQL : Veritabanina Baglanirken Hata Olustu : No database selected

hatayı verıyor
 

gkbrk

webmaster.tc
Katılım
9 Ağu 2012
Mesajlar
1,044
Beğeniler
0
#7
Güzel olmuş. Yakında hızlı veritabanı gerektiren bir projeye başlayacaktım.
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#8
Kodlar güncellenmiştir, Kullanan arkadaşlar kodlarını güncelleyebilir :)
 

LadyArch3r

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
113
Beğeniler
0
#9
Teşekkürler kullanmayı düşünüyorum.Dokümanlar için küçük bir web site hazırlayabilirisn.
 

LadyArch3r

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
113
Beğeniler
0
#10
Teşekkürler kullanmayı düşünüyorum, döküman için küçük bir web site hazırlayabilirsin.
 

saintx

webmaster.tc
Katılım
24 Ağu 2012
Mesajlar
111
Beğeniler
0
Konum
Akhisar
#12
kodlamadaki yapıyı biraz daha geliştirmek lazım alp üzerine düşersek github'luk proje olur benden söylemesi :p
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#13
kodlamadaki yapıyı biraz daha geliştirmek lazım alp üzerine düşersek github'luk proje olur benden söylemesi :p
Aslında EZSQL kullanıyorumda tam ihtiyacımı karşılayamıyordu bunu yazdık, Performans olarak da iyi sonuçları var :) Bakalım kullanıyoruz...
 

gkbrk

webmaster.tc
Katılım
9 Ağu 2012
Mesajlar
1,044
Beğeniler
0
#15
Bu proje geliştirilmeye devam ediyor mu? Çünkü fikir olarak çok güzel bence geliştirilmesi durdurulmamalı.
 

XFQ

webmaster.tc
Katılım
1 Eyl 2012
Mesajlar
217
Beğeniler
0
#16
PHP:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user ''@'localhost' (using password: YES) in C:\xampp\htdocs\sql\alpsql.php on line 14
AlpSQL : MYSQL Bağlanırken Hata Oluştu Access denied for user ''@'localhost' (using password: YES)
hatasını veriyor. Veritabanı bilgilerim doğru. Nasıl çözebiliriz ?
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#18
PHP:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user ''@'localhost' (using password: YES) in C:\xampp\htdocs\sql\alpsql.php on line 14
AlpSQL : MYSQL Bağlanırken Hata Oluştu Access denied for user ''@'localhost' (using password: YES)
hatasını veriyor. Veritabanı bilgilerim doğru. Nasıl çözebiliriz ?
Üyelik ile ilgili sıkıntı var.