]> git.wh0rd.org - tt-rss.git/blobdiff - db.php
reduce the number of always included libraries
[tt-rss.git] / db.php
diff --git a/db.php b/db.php
index 44187db0f3d1bcfdf8ce275b94bd60052b909db2..0682b58f829fa09dbd43ed14720cc1606f1bba0d 100644 (file)
--- a/db.php
+++ b/db.php
@@ -1,16 +1,24 @@
-<?
+<?php
 
 require_once "config.php";
 
 function db_connect($host, $user, $pass, $db) {
-       if (DB_TYPE == "pgsql") {       
-                         
-               $string = "dbname=$db user=$user password=$pass";
-               
+       if (DB_TYPE == "pgsql") {
+
+               $string = "dbname=$db user=$user";
+
+               if ($pass) {
+                       $string .= " password=$pass";
+               }
+
                if ($host) {
                        $string .= " host=$host";
                }
 
+               if (defined('DB_PORT')) {
+                       $string = "$string port=" . DB_PORT;
+               }
+
                $link = pg_connect($string);
 
                if (!$link) {
@@ -22,10 +30,10 @@ function db_connect($host, $user, $pass, $db) {
        } else if (DB_TYPE == "mysql") {
                $link = mysql_connect($host, $user, $pass);
                if ($link) {
-                       $result = mysql_select_db($db, $link);                  
+                       $result = mysql_select_db($db, $link);
                        if (!$result) {
                                die("Can't select DB: " . mysql_error($link));
-                       }                       
+                       }
                        return $link;
                } else {
                        die("Connection failed: " . mysql_error($link));
@@ -33,48 +41,42 @@ function db_connect($host, $user, $pass, $db) {
        }
 }
 
-function db_escape_string($s) {
-       if (DB_TYPE == "pgsql") {       
+function db_escape_string($s, $strip_tags = true) {
+       if ($strip_tags) $s = strip_tags($s);
+
+       if (DB_TYPE == "pgsql") {
                return pg_escape_string($s);
        } else {
                return mysql_real_escape_string($s);
        }
 }
 
-/* I hate MySQL :( */
+function db_query($link, $query, $die_on_error = true) {
+       //if ($_REQUEST["qlog"])
+       //      error_log($_SESSION["uid"] . ":" . $_REQUEST["op"] . "/" . $_REQUEST["subop"] .
+       //              " $query\n", 3, "/tmp/ttrss-query.log");
 
-function db_escape_string_2($s, $link) {
-       if (DB_TYPE == "pgsql") {       
-               return pg_escape_string($s);
-       } else {
-               return mysql_real_escape_string($s, $link);
-       }
-}
-
-function db_query($link, $query) {
        if (DB_TYPE == "pgsql") {
                $result = pg_query($link, $query);
                if (!$result) {
-                       die("Query <i>$query</i> failed: " . pg_last_error($link));                     
+                       $query = htmlspecialchars($query); // just in case
+                       if ($die_on_error) {
+                               die("Query <i>$query</i> failed [$result]: " . pg_last_error($link));
+                       }
                }
                return $result;
        } else if (DB_TYPE == "mysql") {
                $result = mysql_query($query, $link);
                if (!$result) {
-                       die("Query <i>$query</i> failed: " . mysql_error($link));
+                       $query = htmlspecialchars($query);
+                       if ($die_on_error) {
+                               die("Query <i>$query</i> failed: " . mysql_error($link));
+                       }
                }
                return $result;
        }
 }
 
-function db_query_2($query) {
-       if (DB_TYPE == "pgsql") {
-               return pg_query($query);
-       } else if (DB_TYPE == "mysql") {
-               return mysql_query($link);
-       }
-}
-
 function db_fetch_assoc($result) {
        if (DB_TYPE == "pgsql") {
                return pg_fetch_assoc($result);
@@ -96,12 +98,17 @@ function db_fetch_result($result, $row, $param) {
        if (DB_TYPE == "pgsql") {
                return pg_fetch_result($result, $row, $param);
        } else if (DB_TYPE == "mysql") {
-               // FIXME
-               $line = mysql_fetch_assoc($result);
-               return $line[$param];
+               // I hate incoherent naming of PHP functions
+               return mysql_result($result, $row, $param);
        }
 }
 
+function db_unescape_string($str) {
+       $tmp = str_replace("\\\"", "\"", $str);
+       $tmp = str_replace("\\'", "'", $tmp);
+       return $tmp;
+}
+
 function db_close($link) {
        if (DB_TYPE == "pgsql") {
 
@@ -111,3 +118,25 @@ function db_close($link) {
                return mysql_close($link);
        }
 }
+
+function db_affected_rows($link, $result) {
+       if (DB_TYPE == "pgsql") {
+               return pg_affected_rows($result);
+       } else if (DB_TYPE == "mysql") {
+               return mysql_affected_rows($link);
+       }
+}
+
+function db_last_error($link) {
+       if (DB_TYPE == "pgsql") {
+               return pg_last_error($link);
+       } else if (DB_TYPE == "mysql") {
+               return mysql_error($link);
+       }
+}
+
+function db_quote($str){
+       return("'$str'");
+}
+
+?>