From 977cea1438dafcdc98756b070a1383e5887d64c1 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 26 Apr 2016 20:04:24 +0300 Subject: actually check for failures properly in the dbupdater --- classes/db/mysql.php | 9 +++++++-- classes/db/mysqli.php | 9 +++++++-- classes/db/pgsql.php | 9 +++++++-- 3 files changed, 21 insertions(+), 6 deletions(-) (limited to 'classes/db') diff --git a/classes/db/mysql.php b/classes/db/mysql.php index d4b45b98c..e8701f7bb 100644 --- a/classes/db/mysql.php +++ b/classes/db/mysql.php @@ -1,6 +1,7 @@ link = mysql_connect($host, $user, $pass); @@ -28,10 +29,10 @@ class Db_Mysql implements IDb { function query($query, $die_on_error = true) { $result = @mysql_query($query, $this->link); if (!$result) { - $error = @mysql_error($this->link); + $this->last_error = @mysql_error($this->link); @mysql_query("ROLLBACK", $this->link); - user_error("Query $query failed: " . ($this->link ? $error : "No connection"), + user_error("Query $query failed: " . ($this->link ? $this->last_error : "No connection"), $die_on_error ? E_USER_ERROR : E_USER_WARNING); } return $result; @@ -62,6 +63,10 @@ class Db_Mysql implements IDb { return mysql_error(); } + function last_query_error() { + return $this->last_error; + } + function init() { $this->query("SET time_zone = '+0:0'"); diff --git a/classes/db/mysqli.php b/classes/db/mysqli.php index c685b75a0..a9689df70 100644 --- a/classes/db/mysqli.php +++ b/classes/db/mysqli.php @@ -1,6 +1,7 @@ link, $query); if (!$result) { - $error = @mysqli_error($this->link); + $this->last_error = @mysqli_error($this->link); @mysqli_query($this->link, "ROLLBACK"); - user_error("Query $query failed: " . ($this->link ? $error : "No connection"), + user_error("Query $query failed: " . ($this->link ? $this->last_error : "No connection"), $die_on_error ? E_USER_ERROR : E_USER_WARNING); } @@ -66,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'"); diff --git a/classes/db/pgsql.php b/classes/db/pgsql.php index 6b772d9e1..7bacfef60 100644 --- a/classes/db/pgsql.php +++ b/classes/db/pgsql.php @@ -1,6 +1,7 @@ link, $query); if (!$result) { - $error = @pg_last_error($this->link); + $this->last_error = @pg_last_error($this->link); @pg_query($this->link, "ROLLBACK"); $query = htmlspecialchars($query); // just in case - user_error("Query $query failed: " . ($this->link ? $error : "No connection"), + user_error("Query $query failed: " . ($this->link ? $this->last_error : "No connection"), $die_on_error ? E_USER_ERROR : E_USER_WARNING); } return $result; @@ -73,6 +74,10 @@ class Db_Pgsql implements IDb { return pg_last_error($this->link); } + function last_query_error() { + return $this->last_error; + } + function init() { $this->query("set client_encoding = 'UTF-8'"); pg_set_client_encoding("UNICODE"); -- cgit v1.2.3