]> git.datanom.net - qtadmin.git/blobdiff - lib/db_mysqli.inc.php
prepare for wblistadm server
[qtadmin.git] / lib / db_mysqli.inc.php
index e128d2f707daec92a2f6d9388d69e34c310df12b..9203f6db3ac2f5ad817d6b30902a9a11779cf529 100644 (file)
@@ -4,78 +4,78 @@ require_once $CFG->root .'lib/db_implementation.php';
 
 class DBMysqli extends DBImpl {
 
-       private static $_instance = null;
-       private $con = null;
-       private $charset = 'utf8';
-       private $numRows = -1;
-
-       private function __construct() {
-               $this->connect();
-       }
-
-       function __destruct() {
-               if ($this->con) {
-                       $this->con->close();
-                       $this->con = null;
-               }
-       }
-
-       private function __clone() {}
-
-       public static function getInstance() {
-               if (!is_object(self::$_instance)) {
-                       self::$_instance = new DBMysqli();
-               }
-               return self::$_instance; 
-       }
-
-       private function connect() {
-               global $CFG;
-
-               if (!$this->con) {
-                       $this->con = new mysqli($CFG->amavisd_db_host, $CFG->amavisd_db_user,
-                                         $CFG->amavisd_db_password, $CFG->amavisd_db_name,
-                                         $CFG->amavisd_db_port);
-                       if ($this->con->connect_error) {
-                               die ('Connect error ('.$this->con->connect_errno.') '.
-                                       $this->con->connect_error);
-                       }
-               }
-       }
-       
-       public function setCharset($charset = 'utf8') {
-               $this->charset = $charset;
-       }
-
-       private function changeCharset() {
-               if (!$this->con->set_charset($this->charset)) {
-                       printf("Error loading character set %s: %s\n", $this->charset, $this->con->error);
-               }
-       }
-
-       public function update($sql) {
-               $success = true;
-
-               if (! is_array($sql)) {
-                       $sql = array($sql);
-               }
-
-               $this->con->autocommit(false);
-               foreach ($sql as $query) {
-                       $this->con->query($query) ? null : $success = false;            
-               }
-               $success ? $this->con->commit() : $this->con->rollback();
-               $this->con->autocommit(true);
-
-               return $success;
-       }
-
-       function getMarked($recipient = 'all') {
-               $all = array();
-
-               $query = "select distinct m.mail_id as id from quarantine q, msgrcpt m, msgs s, maddr r ";
-               $query .= "where m.mail_id = q.mail_id and q.mail_id = s.mail_id and m.rid = r.id ";
-               $query .= "and (m.rs = 'R' or m.rs = 'D')";
+    private static $_instance = null;
+    private $con = null;
+    private $charset = 'utf8';
+    private $numRows = -1;
+
+    private function __construct() {
+        $this->connect();
+    }
+
+    function __destruct() {
+        if ($this->con) {
+            $this->con->close();
+            $this->con = null;
+        }
+    }
+
+    private function __clone() {}
+
+    public static function getInstance() {
+        if (!is_object(self::$_instance)) {
+            self::$_instance = new DBMysqli();
+        }
+        return self::$_instance;
+    }
+
+    private function connect() {
+        global $CFG;
+
+        if (!$this->con) {
+            $this->con = new mysqli($CFG->amavisd_db_host, $CFG->amavisd_db_user,
+                      $CFG->amavisd_db_password, $CFG->amavisd_db_name,
+                      $CFG->amavisd_db_port);
+            if ($this->con->connect_error) {
+                die ('Connect error ('.$this->con->connect_errno.') '.
+                    $this->con->connect_error);
+            }
+        }
+    }
+
+    public function setCharset($charset = 'utf8') {
+        $this->charset = $charset;
+    }
+
+    private function changeCharset() {
+        if (!$this->con->set_charset($this->charset)) {
+            printf("Error loading character set %s: %s\n", $this->charset, $this->con->error);
+        }
+    }
+
+    public function update($sql) {
+        $success = true;
+
+        if (! is_array($sql)) {
+            $sql = array($sql);
+        }
+
+        $this->con->autocommit(false);
+        foreach ($sql as $query) {
+            $this->con->query($query) ? null : $success = false;
+        }
+        $success ? $this->con->commit() : $this->con->rollback();
+        $this->con->autocommit(true);
+
+        return $success;
+    }
+
+    function getMarked($recipient = 'all') {
+        $all = array();
+
+        $query = "select distinct m.mail_id as id from quarantine q, msgrcpt m, msgs s, maddr r ";
+        $query .= "where m.mail_id = q.mail_id and q.mail_id = s.mail_id and m.rid = r.id ";
+        $query .= "and (m.rs = 'R' or m.rs = 'D')";
 
         if ($recipient != 'all') {
             $query .= " and email = '$recipient'";
@@ -83,68 +83,88 @@ class DBMysqli extends DBImpl {
 
         if ($result = $this->con->query($query)) {
             while ($row = $result->fetch_object()) {
-               $all[] = $row->id;
-                       }
+                $all[] = $row->id;
+            }
+        }
+
+        return $all;
+    }
+
+    public function getQMails($offset = -1, $rowsPerPage = -1, $recipient = 'all') {
+        $row = array();
+        $this->changeCharset();
+        $query = "SELECT DISTINCT quarantine.mail_id, secret_id, rs, bspam_level, ";
+        $query .= "(UNIX_TIMESTAMP(time_iso) + (3600 * 2)) AS time_iso, ";
+        $query .= "SUBSTRING(sender.email,1,35) AS sender, ";
+        $query .= "SUBSTRING(recipient.email,1,28) AS recipient, size, msgrcpt.content ";
+        $query .= "AS quaratinefor, SUBSTRING( subject, 1, 25) AS subject FROM ";
+        $query .= "`quarantine` LEFT JOIN msgrcpt ON msgrcpt.mail_id = quarantine.mail_id ";
+        $query .= "LEFT JOIN msgs ON msgs.mail_id = quarantine.mail_id LEFT JOIN maddr AS ";
+        $query .= "recipient ON msgrcpt.rid = recipient.id LEFT JOIN maddr AS sender ON ";
+        $query .= "msgs.sid = sender.id WHERE msgrcpt.rs != 'R' AND msgrcpt.rs != 'D'";
+
+        if ($recipient != 'all') {
+            $query .= " and recipient.email = '$recipient'";
+        }
+
+        if ($offset >= 0 && $rowsPerPage >= 0) {
+            $result = $this->con->query($query, MYSQLI_STORE_RESULT);
+            if ($result) {
+                $this->numRows = $result->num_rows;
+                $result->free();
+            } else {
+                $this->numRows = 0;
+            }
+            $query .= " ORDER BY time_iso DESC LIMIT $offset, $rowsPerPage";
+        }
+
+        if ($result = $this->con->query($query, MYSQLI_USE_RESULT)) {
+            if ($this->numRows < 0)
+                $this->numRows = $result->num_rows;
+            while ($obj = $result->fetch_object()) {
+                $row[] = $obj;
+            }
+            $result->free();
+        }
+
+        return $row;
+    }
+
+    public function numRows() {
+        return $this->numRows;
+    }
+
+    public function getMail($id) {
+        $row = null;
+
+        $this->changeCharset();
+        $query = "SELECT * FROM quarantine WHERE mail_id = '$id'";
+        if ($result = $this->con->query($query, MYSQLI_USE_RESULT)) {
+            $row = $result->fetch_object();
+        }
+
+        return $row;
+    }
+
+    public function getRecipient($id) {
+        $recipient = false;
+
+        $query = "SELECT recipient.email as recipient FROM quarantine q LEFT JOIN msgrcpt ";
+        $query .= "ON msgrcpt.mail_id = q.mail_id LEFT JOIN msgs ON ";
+        $query .= "msgs.mail_id = q.mail_id LEFT JOIN maddr AS recipient ";
+        $query .= "ON msgrcpt.rid = recipient.id LEFT JOIN maddr AS sender ON ";
+        $query .= "msgs.sid = sender.id WHERE q.mail_id = '$id'";
+
+        if ($result = $this->con->query($query, MYSQLI_USE_RESULT)) {
+            $obj = $result->fetch_object();
+            if ($obj) {
+                $recipient = $obj->recipient;
+            }
+            $result->free();
         }
 
-               return $all;
-       }
-       
-       public function getQMails($offset = -1, $rowsPerPage = -1, $recipient = 'all') {
-               $row = array();
-               $this->changeCharset();
-               $query = "SELECT DISTINCT quarantine.mail_id, secret_id, rs, bspam_level, ";
-               $query .= "(UNIX_TIMESTAMP(time_iso) + (3600 * 2)) AS time_iso, ";
-               $query .= "SUBSTRING(sender.email,1,35) AS sender, ";
-               $query .= "SUBSTRING(recipient.email,1,28) AS recipient, size, msgrcpt.content ";
-               $query .= "AS quaratinefor, SUBSTRING( subject, 1, 25) AS subject FROM ";
-               $query .= "`quarantine` LEFT JOIN msgrcpt ON msgrcpt.mail_id = quarantine.mail_id ";
-               $query .= "LEFT JOIN msgs ON msgs.mail_id = quarantine.mail_id LEFT JOIN maddr AS ";
-               $query .= "recipient ON msgrcpt.rid = recipient.id LEFT JOIN maddr AS sender ON ";
-               $query .= "msgs.sid = sender.id WHERE msgrcpt.rs != 'R' AND msgrcpt.rs != 'D'";
-               
-               if ($recipient != 'all') {
-                       $query .= " and recipient.email = '$recipient'";
-               }
-               
-               if ($offset >= 0 && $rowsPerPage >= 0) {
-                       $result = $this->con->query($query, MYSQLI_STORE_RESULT);
-                       if ($result) {
-                               $this->numRows = $result->num_rows;
-                               $result->free();
-                       } else {
-                               $this->numRows = 0;
-                       }
-                       $query .= " ORDER BY time_iso DESC LIMIT $offset, $rowsPerPage";
-               }
-       
-               if ($result = $this->con->query($query, MYSQLI_USE_RESULT)) {
-                       if ($this->numRows < 0)
-                               $this->numRows = $result->num_rows;
-                       while ($obj = $result->fetch_object()) {
-                               $row[] = $obj;
-                       }
-                       $result->free();
-               }
-               
-               return $row;
-       }
-
-       public function numRows() {
-               return $this->numRows;
-       }
-
-       public function getMail($id) {
-               $row = null;
-
-               $this->changeCharset();
-               $query = "SELECT * FROM quarantine WHERE mail_id = '$id'";
-                if ($result = $this->con->query($query, MYSQLI_USE_RESULT)) {
-                        $row = $result->fetch_object();
-                }
-
-               return $row;
-       }
+        return $recipient;
+    }
 
 }
 
This page took 0.058535 seconds and 5 git commands to generate.