]> git.mxchange.org Git - friendica.git/blobdiff - include/dba.php
quattro: more on editor
[friendica.git] / include / dba.php
index 32f1ac3edb9e0c005aacf242527d53e68215359f..b89cf53766feb474d64f2288930f014164b69b98 100644 (file)
@@ -16,8 +16,10 @@ class dba {
 
        private $debug = 0;
        private $db;
+       public  $mysqli = true;
        public  $connected = false;
 
+
        function __construct($server,$user,$pass,$db,$install = false) {
 
                $server = trim($server);
@@ -36,11 +38,20 @@ class dba {
                        }
                }
 
-               $this->db = @new mysqli($server,$user,$pass,$db);
-               if(! mysqli_connect_errno()) {
-                       $this->connected = true;
+               if(class_exists('mysqli')) {
+                       $this->db = @new mysqli($server,$user,$pass,$db);
+                       if(! mysqli_connect_errno()) {
+                               $this->connected = true;
+                       }
                }
                else {
+                       $this->mysqli = false;
+                       $this->db = mysql_connect($server,$user,$pass);
+                       if($this->db && mysql_select_db($db,$this->db)) {
+                               $this->connected = true;
+                       }
+               }
+               if(! $this->connected) {
                        $this->db = null;
                        if(! $install)
                                system_unavailable();
@@ -56,22 +67,33 @@ class dba {
                if((! $this->db) || (! $this->connected))
                        return false;
                
-               $result = @$this->db->query($sql);
+               if($this->mysqli)
+                       $result = @$this->db->query($sql);
+               else
+                       $result = @mysql_query($sql,$this->db);
 
                if($this->debug) {
 
                        $mesg = '';
 
-                       if($this->db->errno)
-                               logger('dba: ' . $this->db->error);
+                       if($this->mysqli) {
+                               if($this->db->errno)
+                                       logger('dba: ' . $this->db->error);
+                       }
+                       elseif(mysql_errno($this->db))
+                               logger('dba: ' . mysql_error($this->db));
 
                        if($result === false)
                                $mesg = 'false';
                        elseif($result === true)
                                $mesg = 'true';
-                       else
-                               $mesg = $result->num_rows . ' results' . EOL;
-        
+                       else {
+                               if($this->mysqli)
+                                       $mesg = $result->num_rows . ' results' . EOL;
+                       else
+                                       $mesg = mysql_num_rows($result) . ' results' . EOL;
+                       }
+    
                        $str =  'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . EOL;
 
                        logger('dba: ' . $str );
@@ -95,11 +117,21 @@ class dba {
                        return $result;
 
                $r = array();
-               if($result->num_rows) {
-                       while($x = $result->fetch_array(MYSQL_ASSOC))
-                               $r[] = $x;
-                       $result->free_result();
+               if($this->mysqli) {
+                       if($result->num_rows) {
+                               while($x = $result->fetch_array(MYSQL_ASSOC))
+                                       $r[] = $x;
+                               $result->free_result();
+                       }
                }
+               else {
+                       if(mysql_num_rows($result)) {
+                               while($x = mysql_fetch_array($result, MYSQL_ASSOC))
+                                       $r[] = $x;
+                               mysql_free_result($result);
+                       }
+               }
+
     
                if($this->debug)
                        logger('dba: ' . printable(print_r($r, true)), LOGGER_DATA);
@@ -111,12 +143,19 @@ class dba {
        }
 
        public function escape($str) {
-               if($this->db && $this->connected)
-                       return @$this->db->real_escape_string($str);
+               if($this->db && $this->connected) {
+                       if($this->mysqli)
+                               return @$this->db->real_escape_string($str);
+                       else
+                               return @mysql_real_escape_string($str,$this->db);
+               }
        }
 
        function __destruct() {
-               @$this->db->close();
+               if($this->mysqli)
+                       @$this->db->close();
+               else
+                       @mysql_close($this->db);
        }
 }}
 
@@ -215,10 +254,3 @@ function dbesc_array(&$arr) {
 }}             
 
 
-if(! function_exists('closedb')) {
-function closedb() {
-       global $db;
-       if($db && $db->connected)
-               $db->close();
-}}
-