Witam
Znalazłem taką klasę do obsługi mysql z funkcją cache:
<?php
define('CACHE_DIR', './sql_cache/'); //katalog Cache class sql{
var $connection;
var $result;
var $rows;
var $queries = 0;
var $cache_state =0; //numer aktualnego stanu
var $cache_file; //nazwa pliku w którym jest przechowywane cache
var $cache_buffer; //buffor do generowania danych
var $cache_ptr; //numer ostatniego pola w bufforze
//funkcja łącząca się z bazą danych
function sql_connect($host, $user, $pass, $db){
}//
//funkcja zamykająca połączenie z bazą danych
function sql_close(){
}//
//Cashowanie zapytań
function sql_cache($handle = 0){
$this->cache_state = 1;
$this->cache_ptr = 0;
}else{
$this->cache_state = 2;
$this->cache_buffer = array(); $this->cache_file = CACHE_DIR.'a0x_'.$handle.'.666';
}
}else{
if($this->cache_state == 2){
file_put_contents
($this->cache_file, serialize($this->cache_buffer)); }
$this -> cache_state = 0;
}
}//
//usuwanie cache
function sql_cache_remove($handle){
unlink(CACHE_DIR
.'a0x_'.$handle.'.666'); }
}//
//funkcja dodawania zapytań do mysql
function sql_query($query){
if($this->cache_state != 1)
{
$this->queries++;
{
}
return 1;
}
}//
//zwracanie tablic mysql z bazy danych
function sql_fetch_array(){
if($this->cache_state == 1){
if(!isset($this -> cache_buffer[$this->cache_ptr])){ return 0;
}
$this->rows = $this->cache_buffer[$this->cache_ptr];
$this->cache_ptr++;
return 1;
}else{
if($this->cache_state == 2)
{
$this -> cache_buffer[] = $this->rows;
}
return 1;
}
}
return 0;
}//
} // koniec klasy
///////////użycie
$sql = new sql;
$sql -> sql_connect('localhost', 'root', '', 'nazwa_bazy');
//cache start
$sql->sql_cache('news');
$sql->sql_query('SELECT * FROM newsy');
///
while($sql->sql_fetch_array())
{
echo $sql->rows['id'].' - '.$sql->rows['tytul'].' - '.$sql->rows['autor'].' '.$sql->rows['zrodlo'].' '.$sql->rows['glowna'].'<br/>'; }
///
//cache stop
$sql->sql_cache();
$sql->sql_close();
?>
chciałem podpiąć klasę pod mój skrypt i tutaj mam problem ponieważ używam zapytań typu:
<?php
if($sprawdz_wyniki!=0)
{
{
//rezultaty
}
}
else
{
}
?>
ta klasa niestety nie pasuje do tego rozwiązania, jeśli nie ma rekordów to na stronei nie generuje nic lecz tworzy plik cache z zawartością: a:0:{}
Chciałbym Was prosić i zapytać w jaki sposób można przerobić klasę, aby mogła współpracować z metodą pobierania wyników, którą zaprezentowałem wyżej.
Pozdrawiam