]> git.wh0rd.org - tt-rss.git/blobdiff - classes/db/mysqli.php
actually check for failures properly in the dbupdater
[tt-rss.git] / classes / db / mysqli.php
index 550df6f154cf58070d637a0c14152b92781e5cac..a9689df70cde9254c6c1015352857803aac49603 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 class Db_Mysqli implements IDb {
        private $link;
+       private $last_error;
 
        function connect($host, $user, $pass, $db, $port) {
                if ($port)
@@ -13,7 +14,7 @@ class Db_Mysqli implements IDb {
 
                        return $this->link;
                } else {
-                       die("Unable to connect to database (as $user to $host, database $db): " . mysqli_error());
+                       die("Unable to connect to database (as $user to $host, database $db): " . mysqli_connect_error());
                }
        }
 
@@ -24,9 +25,12 @@ class Db_Mysqli implements IDb {
        }
 
        function query($query, $die_on_error = true) {
-               $result = mysqli_query($this->link, $query);
+               $result = @mysqli_query($this->link, $query);
                if (!$result) {
-                       user_error("Query $query failed: " . ($this->link ? mysqli_error($this->link) : "No connection"),
+                       $this->last_error = @mysqli_error($this->link);
+
+                       @mysqli_query($this->link, "ROLLBACK");
+                       user_error("Query $query failed: " . ($this->link ? $this->last_error : "No connection"),
                                $die_on_error ? E_USER_ERROR : E_USER_WARNING);
                }
 
@@ -63,6 +67,10 @@ class Db_Mysqli implements IDb {
                return mysqli_error();
        }
 
+       function last_query_error() {
+               return $this->last_error;
+       }
+
        function init() {
                $this->query("SET time_zone = '+0:0'");