]> git.wh0rd.org - tt-rss.git/blob - classes/db.php
experimental singleton-based Db connection
[tt-rss.git] / classes / db.php
1 <?php
2 class Db implements IDb {
3 private static $instance;
4 private $adapter;
5
6 private function __construct() {
7 switch (DB_TYPE) {
8 case "mysql":
9 $this->adapter = new Db_Mysql();
10 break;
11 case "pgsql":
12 $this->adapter = new Db_Pgsql();
13 break;
14 default:
15 die("Unknown DB_TYPE: " . DB_TYPE);
16 }
17
18 $this->adapter->connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT);
19 }
20
21 private function __clone() {
22 //
23 }
24
25 public static function get() {
26 if (self::$instance == null)
27 self::$instance = new self();
28
29 return self::$instance;
30 }
31
32 static function quote($str){
33 return("'$str'");
34 }
35
36 function connect($host, $user, $pass, $db, $port) {
37 //return $this->adapter->connect($host, $user, $pass, $db, $port);
38 }
39
40 function escape_string($s, $strip_tags = true) {
41 return $this->adapter->escape_string($s, $strip_tags);
42 }
43
44 function query($query, $die_on_error = true) {
45 return $this->adapter->query($query, $die_on_error);
46 }
47
48 function fetch_assoc($result) {
49 return $this->adapter->fetch_assoc($result);
50 }
51
52 function num_rows($result) {
53 return $this->adapter->num_rows($result);
54 }
55
56 function fetch_result($result, $row, $param) {
57 return $this->adapter->fetch_result($result, $row, $param);
58 }
59
60 function close() {
61 return $this->adapter->close();
62 }
63
64 function affected_rows($result) {
65 return $this->adapter->affected_rows($result);
66 }
67
68 function last_error() {
69 return $this->adapter->last_error();
70 }
71
72 }
73 ?>