summaryrefslogtreecommitdiff
path: root/classes/db.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-04-17 13:08:36 +0400
committerAndrew Dolgov <[email protected]>2013-04-17 13:08:36 +0400
commit9594791782bb9adbf29018c444ea427fbaeb5ee4 (patch)
tree03bf4eddfb7b3333e6bfe1eaf3e3ea08aa2e818a /classes/db.php
parent857efe49e653787f5408fc014ae71efec68494d5 (diff)
experimental singleton-based Db connection
Diffstat (limited to 'classes/db.php')
-rw-r--r--classes/db.php73
1 files changed, 73 insertions, 0 deletions
diff --git a/classes/db.php b/classes/db.php
new file mode 100644
index 000000000..403cbc93a
--- /dev/null
+++ b/classes/db.php
@@ -0,0 +1,73 @@
+<?php
+class Db implements IDb {
+ private static $instance;
+ private $adapter;
+
+ private function __construct() {
+ switch (DB_TYPE) {
+ case "mysql":
+ $this->adapter = new Db_Mysql();
+ break;
+ case "pgsql":
+ $this->adapter = new Db_Pgsql();
+ break;
+ default:
+ die("Unknown DB_TYPE: " . DB_TYPE);
+ }
+
+ $this->adapter->connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT);
+ }
+
+ private function __clone() {
+ //
+ }
+
+ public static function get() {
+ if (self::$instance == null)
+ self::$instance = new self();
+
+ return self::$instance;
+ }
+
+ static function quote($str){
+ return("'$str'");
+ }
+
+ function connect($host, $user, $pass, $db, $port) {
+ //return $this->adapter->connect($host, $user, $pass, $db, $port);
+ }
+
+ function escape_string($s, $strip_tags = true) {
+ return $this->adapter->escape_string($s, $strip_tags);
+ }
+
+ function query($query, $die_on_error = true) {
+ return $this->adapter->query($query, $die_on_error);
+ }
+
+ function fetch_assoc($result) {
+ return $this->adapter->fetch_assoc($result);
+ }
+
+ function num_rows($result) {
+ return $this->adapter->num_rows($result);
+ }
+
+ function fetch_result($result, $row, $param) {
+ return $this->adapter->fetch_result($result, $row, $param);
+ }
+
+ function close() {
+ return $this->adapter->close();
+ }
+
+ function affected_rows($result) {
+ return $this->adapter->affected_rows($result);
+ }
+
+ function last_error() {
+ return $this->adapter->last_error();
+ }
+
+}
+?>