diff options
Diffstat (limited to 'linkshorter/class/db.php')
| -rw-r--r-- | linkshorter/class/db.php | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/linkshorter/class/db.php b/linkshorter/class/db.php new file mode 100644 index 0000000..7713487 --- /dev/null +++ b/linkshorter/class/db.php @@ -0,0 +1,73 @@ +<?php + +class Database { + + private $db; + public $error; + + public function __construct($connect = false, $db = false){ + $this->db = new Redis(); + + if ( ! $connect || ! $db ) + return; + + $this->connect($connect, $db); + } + + public function connect($connect, $db){ + try { + $this->db->connect($connect); + } catch (Exception $e){ + $this->error = $e; + return false; + } + + try { + $this->db->select($db); + } catch (Exception $e){ + $this->error = $e; + return false; + } + + try { + $this->db->ping(); + } catch (Exception $e){ + $this->error = $e; + return false; + } + + return true; + } + + public function expire($key, $ttl){ + try { + $this->db->setTimeout($key, $ttl); + } catch (Exception $e){ + $this->error = $e; + return false; + } + } + + public function set($key, $value, $ttl = null){ + if ( is_null($ttl) ) + return $this->db->set($key, $value); + else + return $this->db->set($key, $value, (int)$ttl); + } + + public function get($key){ + return $this->db->get($key); + } + + public function exists($key){ + return $this->db->exists($key); + } + + public function __destruct(){ + try { + $this->db->close(); + } catch (Exception $e){ + return false; + } + } +} |
