| Rubrika Php / mysql
Cachovanie s pomocou funkcií serialize/unserialize
Cachovanie výstupu SQL dotazu môže byť rôzne. Už som spomínal
cachovanie celých kusov stránky do HTML súboru, teraz načrtnem ako môže
vyzerať cachovanie za pomoci PHP funkcií serialize a
unserialize. Zjednodušene povedané, funkcia
serialize dokáže pretransformovať premennú – pole – do
takej podoby, aby bola uložiteľná do externého súboru a zároveň znovu
použiteľná v podobe rovnakého poľa. V praxi to vyzerá asi takto.
$query="SELECT id FROM tabulka LIMIT 1"; $hash = md5($query);
Pomocou funkcie md5 vytvorím hash zadaného sql dotazu – nech je
akýkoľvek.
Cachovanie je založené na pravidle, že každý SQL dotaz je uložený do
súboru s názvom obsahujúcim tento vytvorený hash. Cache súbor sa teda bude
volať napríklad 5433c02e9c80d27a912f719724156162.txt.
if(file_exists($hash)) { $fromCache = unserialize(implode('',file($hash))); }
Pred samotným vykonaním SQL dotazu overujem, či náhodou neexistuje
zacachovaný súbor. Pokiaľ áno, tak do premennej $fromCache
pomocou funkcie unserialize vrátim predtým zacachovaný výstup
SQL dotazu.
if(!file_exists($hash)) { $query = mysql_query($query); while ($row = mysql_fetch_assoc($query)) { $cache[] = $row; } $output = serialize($cache); $fp = fopen($cacheFile,"w"); fputs($fp, $output); fclose($fp); }
Pokiaľ cachovací súbor neexistuje, vykonám SQL dotaz štandardným
spôsobom, výstup uložím do premennej $cache a „zakódujem“
funkciou serialize. Premennú potom stačí uložiť do
súboru.
Tomáš Mašek
naspäť
prispieť do diskusie [1]
Vyhľadávanie
Viac z rubriky
Ako ochrániť includované PHP súbory?
Automatické generovanie formulárov z MySQL
Automatický prevod texu na hyperlink
Cachovanie do HTML súboru
Čiernobiele obrázky v PHP
Dynamická tvorba URL
Fulltext ako názov stĺpca v tabuľke
Getcwd – Ako ľahko získať absolútnu cestu
Import z Excelu do MySQL databázy
Maximálny timeout vykonávania SQL skriptu
Microtime – rýchlosť načítania stránky
Odstránenie diakritiky v PHP pomocou iconv()
Overovanie a kontrola formulárov v PHP
Parsovanie XML súboru v PHP
PHP a zachytenie nedoručených mailov
PHP funkcia implode
Porovnávanie a dátovy typ DATE
Práca so súbormi pri zapnutom safe_mode
Prihlasovanie uživateľa prostredníctvom $_SESSION
Real-time kontrola e-mailovej adresy AJAX-om
Spracovanie dátového typu ENUM do HTML selectu
Strpos a offset – nájdenie výskytu znaku v reťazci
Tip: Generovanie PDF súborov
Tip: jednoduché šifrovanie a dešifrovanie v PHP
Tip: správne includovanie súborov
Ukladanie jazykových verzií statických textov
Veľmi jednoduchý návod na pekné URI
Vkladanie obrázkov do databázy
Výber záznamov začínajúcich číslom
Vyčistenie viacrozmerného poľa
Vyhľadávanie, pekné URI a diakritika
Vypísanie abecedy v PHP
Využívanie unikátnych kľúčov v MySQL databáze
Zaradenie jednej položky do viacerých kategórií
Zistenie hodnoty ďalšieho ID – autoincrement
Zložené MySQL dotazy – LEFT JOIN
Zvýrazňovanie syntaxe kódu – GeSHi
Pridať komentár



