Turbo DB With Php & Codeigniter Framework Description NoSQL and Sphinx Full Text Search
Turbo DB Eklentisi Php Tabanlı NoSQL Database Ayrıca Sphinx Full Text Arama Motoru
public function import($tablo,$sorgu){ #dataların yedeklendiği kısım $query=$this->db->query($sorgu); $query=$query->result_array(); if(count($query)>0){ $data=serialize($query); $filepath=DBPATH.$tablo.'.php'; $dosya=fopen($filepath, 'r'); if ( write_file($filepath, $data)){ return true; }else{ return false; } }else{ return false; } }
public function save($tablo,$array=array()){ $data=serialize($array); $filepath=DBPATH.$tablo.'.php'; $dosya=fopen($filepath, 'r'); if ( write_file($filepath, $data)){ return true; }else{ return false; } }
public function get($tablo){ #yedeklenen dosyanın okunduğu kısım $filepath=DBPATH.$tablo.'.php'; if(file_exists($filepath)){ $data = read_file($filepath); $data = unserialize($data); return $data; }else{ return false; } }
public function get_where($tablo,$where=array()){ $array=$this->get($tablo); $sayac=0; foreach($array as $data) { #datalar parse edildi $true=0; foreach($where as $name=>$value){ #arama yapılacak sütular çekildi if ($data[$name]==$value){ //pa($value[$kolon]); $sonuclar[]=$array[$sayac]; $true=$true+1; } } if(count($where)==$true){ $this->netice=true; $this->result[]=$array[$sayac]; }else{ $this->netice=false; } $sayac=$sayac+1; } //pa($sonuclar); return array_unique($sonuclar); }
public function search($array=array(),$sutunlar=array(),$search){ #iç içe 2 arrayde çalışacak $sayac=0; foreach($array as $value) { #datalar parse edildi foreach($sutunlar as $kolon){ #arama yapılacak sütular çekildi if (strstr($value[$kolon],$search)){ //pa($value[$kolon]); $sonuclar[]=$array[$sayac]; } } $sayac=$sayac+1; } //pa($sonuclar); return array_unique($sonuclar); }
public function insert($tablo,$array=array()){ $data=$this->get($tablo); $data[]=$array; $save=$this->save($tablo,$data); // var_dump($save); if($save){ return true; }else{ return false; } }
public function where($array){ $this->where=$array; }
public function update($tablo,$sutunlar=array(),$where=array()){ if(count($where)==0){ $where = $this->where; } /* $tablo= saklanan dosya adı , $sutunlar= güncelleme yapılacak alan arrayi , $where= where koşulunda sorgulanacak array sütunlar , $text= where koşulundaki sütunlarda aranacak değer */ $array= $this->get($tablo); $bul=$this->get_where($tablo,$where); $bulunan=$bul[0]; #güncelleme yapılacak alanlar ayrıldı foreach ($sutunlar as $name => $value) { # code... $bulunan[$name]=$value; # bulunan datanın güncellemesi yapıldı } $id=$this->get_id($array,$where); # Güncellenen kaydın saklandığı array data id si alındı $array[$id]=$bulunan; # saklanan arrayde güncelleme işlendi $save=$this->save($tablo,$array); # son hali save edildi if($save){ return true; }else{ return false; } }
public function delete($tablo,$where=array()){ if(count($where)==0){ $where = $this->where; } $array= $this->get($tablo); $id=$this->get_id($array,$where); # silinecek kaydın id si alındı unset($array[$id]); # silinmesi istenen array silindi $save=$this->save($tablo,$array); # son hali save edildi if($save){ return true; }else{ return false; } }
public function join($ilk=array(),$son,$where=array()){ /* $ilk=ilk array, $where = karşılaştırılacak alanlar array('ilkalan'=>'sonalan') */ $true=0; foreach ($where as $ilki=>$sonu) { # code... if($ilk[$ilki]==$son[$sonu]){ $id=array_search($ilk[$ilki], $ilk); $sonuc[]=$ilki[$id]; $true=$true+1; } } if(count($where)==$true){ $this->netice=true; }else{ $this->netice=false; } return array_unique($sonuc); }
public function set_id($data=array()){ $say=count($data); $sayi=$say+1; return $sayi; }
public function insert_id($data=array()){ $sayi=count($data); return $sayi; }
public function get_id($array=array(),$where=array()){ /* $array = saklanan datanın array hali, $where = arama yapılacak alanlar, $text = aranan değer. */ $sayac=0; foreach($array as $data) { #datalar parse edildi foreach($where as $name=>$value){ #arama yapılacak sütular çekildi if ($data[$name]==$value){ //pa($value[$kolon]); $s } } $sayac=$sayac+1; } //pa($sonuclar); return $sonuc; }
public function desc($tablo){ #tablo sütun bilgilerini gönderir $array= $this->get($tablo); foreach ($array as $value) { foreach ($value as $name => $key) { $sonuc[]=$name; } } return array_unique($sonuc); }
public function alter($tablo,$alan=array()){ #tabloya sütun ekler $array= $this->get($tablo); $sayac=0; foreach ($array as $value) { foreach ($value as $name => $key) { foreach ($alan as $kolon) { if($name!=$kolon){ $array[$sayac][$kolon]=''; } } } $sayac=$sayac+1; } $save= $this->save($tablo, $array); return true; }
public function drop_alter($tablo,$alan=array()){ #tablodan sütun kaldırır $array= $this->get($tablo); $sayac=0; foreach ($array as $value) { foreach ($value as $name => $key) { foreach ($alan as $kolon) { if($name==$kolon){ unset($array[$sayac][$kolon]); } } } $sayac=$sayac+1; } $save= $this->save($tablo, $array); return true; }
public function drop($table){ $file_path=DBPATH.$table.'.php'; if(file_exists($file_path)){ if(unlink($file_path)){ return true; }else{ return false; } }else{ return false; } }
Kullanım Notları: * Codeigniter Framewoküne uyumlu olarak çalışır ,
* Application Dizininde Appdata isimli klasör açılmalı ,
* Define ile index.php de path edildiği dizin DBPATH olarak isimlendirilmeli define("DBPATH",FCPATH."application/Appdata/"); ,
* Yazma ve okuma izinleri ayarlanmalı
* Helper class ından dosya işlemleri için "file" çağrılmalı ve write_file metodundan fopen kısmı ya kapatılmalı yada return değerinin kapatılması gerekmektedir.
* Güvenlik için Appdata klasörünüze .htaccess dosyası açıp içine " Denny from all " ile http isteklerini engellemeniz daha güvenli olacaktır.
Turbo DB CEO = Birol Kahraman - Yazılım Geliştirici (Software Developer)
Contact : info@birolkahraman.com
Support : support@birolkahraman.com