]> git.wh0rd.org Git - tt-rss.git/blob - include/db.php
add Public_Handler
[tt-rss.git] / include / db.php
1 <?php
2
3 require_once "config.php";
4
5 function db_connect($host, $user, $pass, $db) {
6         if (DB_TYPE == "pgsql") {
7
8                 $string = "dbname=$db user=$user";
9
10                 if ($pass) {
11                         $string .= " password=$pass";
12                 }
13
14                 if ($host) {
15                         $string .= " host=$host";
16                 }
17
18                 if (defined('DB_PORT')) {
19                         $string = "$string port=" . DB_PORT;
20                 }
21
22                 $link = pg_connect($string);
23
24                 if (!$link) {
25                         die("Connection failed: " . pg_last_error($link));
26                 }
27
28                 return $link;
29
30         } else if (DB_TYPE == "mysql") {
31                 $link = mysql_connect($host, $user, $pass);
32                 if ($link) {
33                         $result = mysql_select_db($db, $link);
34                         if (!$result) {
35                                 die("Can't select DB: " . mysql_error($link));
36                         }
37                         return $link;
38                 } else {
39                         die("Connection failed: " . mysql_error($link));
40                 }
41         }
42 }
43
44 function db_escape_string($s, $strip_tags = true) {
45         if ($strip_tags) $s = strip_tags($s);
46
47         if (DB_TYPE == "pgsql") {
48                 return pg_escape_string($s);
49         } else {
50                 return mysql_real_escape_string($s);
51         }
52 }
53
54 function db_query($link, $query, $die_on_error = true) {
55         //if ($_REQUEST["qlog"])
56         //      error_log($_SESSION["uid"] . ":" . $_REQUEST["op"] . "/" . $_REQUEST["method"] .
57         //              " $query\n", 3, "/tmp/ttrss-query.log");
58
59         if (DB_TYPE == "pgsql") {
60                 $result = pg_query($link, $query);
61                 if (!$result) {
62                         $query = htmlspecialchars($query); // just in case
63                         if ($die_on_error) {
64                                 die("Query <i>$query</i> failed [$result]: " . ($link ? pg_last_error($link) : "No connection"));
65                         }
66                 }
67                 return $result;
68         } else if (DB_TYPE == "mysql") {
69                 $result = mysql_query($query, $link);
70                 if (!$result) {
71                         $query = htmlspecialchars($query);
72                         if ($die_on_error) {
73                                 die("Query <i>$query</i> failed: " . ($link ? mysql_error($link) : "No connection"));
74                         }
75                 }
76                 return $result;
77         }
78 }
79
80 function db_fetch_assoc($result) {
81         if (DB_TYPE == "pgsql") {
82                 return pg_fetch_assoc($result);
83         } else if (DB_TYPE == "mysql") {
84                 return mysql_fetch_assoc($result);
85         }
86 }
87
88
89 function db_num_rows($result) {
90         if (DB_TYPE == "pgsql") {
91                 return pg_num_rows($result);
92         } else if (DB_TYPE == "mysql") {
93                 return mysql_num_rows($result);
94         }
95 }
96
97 function db_fetch_result($result, $row, $param) {
98         if (DB_TYPE == "pgsql") {
99                 return pg_fetch_result($result, $row, $param);
100         } else if (DB_TYPE == "mysql") {
101                 // I hate incoherent naming of PHP functions
102                 return mysql_result($result, $row, $param);
103         }
104 }
105
106 function db_unescape_string($str) {
107         $tmp = str_replace("\\\"", "\"", $str);
108         $tmp = str_replace("\\'", "'", $tmp);
109         return $tmp;
110 }
111
112 function db_close($link) {
113         if (DB_TYPE == "pgsql") {
114
115                 return pg_close($link);
116
117         } else if (DB_TYPE == "mysql") {
118                 return mysql_close($link);
119         }
120 }
121
122 function db_affected_rows($link, $result) {
123         if (DB_TYPE == "pgsql") {
124                 return pg_affected_rows($result);
125         } else if (DB_TYPE == "mysql") {
126                 return mysql_affected_rows($link);
127         }
128 }
129
130 function db_last_error($link) {
131         if (DB_TYPE == "pgsql") {
132                 return pg_last_error($link);
133         } else if (DB_TYPE == "mysql") {
134                 return mysql_error($link);
135         }
136 }
137
138 function db_quote($str){
139         return("'$str'");
140 }
141
142 ?>