system/cache/cache.php
2013-04-21 18:12:13 +02:00

45 lines
1.8 KiB
PHP

<?php
namespace SYSTEM\CACHE;
class cache {
public static function get(\SYSTEM\DB\DBInfo $dbinfo, $cache_id, $ident){
$con = new \SYSTEM\DB\Connection($dbinfo);
$res = $con->prepare( 'checkCache',
'SELECT "data" FROM system.cache'.
' WHERE "CacheID" = $1 AND'.
' "Ident" = $2;',
array($cache_id,$ident));
if(!($result = $res->next())){
return NULL;}
return pg_unescape_bytea($result['data']);
}
public static function put(\SYSTEM\DB\DBInfo $dbinfo, $cache_id, $ident, $data, $fail_on_exist = false){
if((self::get($dbinfo,$cache_id,$ident) != NULL)){
if($fail_on_exist){
return false;}
self::del($dbinfo, $cache_id, $ident);
}
$con = new \SYSTEM\DB\Connection($dbinfo);
$res = $con->prepare( 'insertCache',
'INSERT INTO system.cache ("CacheID", "Ident", "data")'.
' VALUES ($1,$2,$3);',
array($cache_id,$ident,pg_escape_bytea($data)));
return $res->next() ? $data : NULL;
}
public static function del(\SYSTEM\DB\DBInfo $dbinfo, $cache_id, $ident){
$con = new \SYSTEM\DB\Connection($dbinfo);
$res = $con->prepare( 'deleteCache',
'DELETE FROM system.cache'.
' WHERE "CacheID" = $1 AND'.
' "Ident" = $2;',
array($cache_id,$ident));
return $res->next() ? true : false;
}
}