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