summaryrefslogtreecommitdiff
path: root/classes/db
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2016-04-26 20:04:24 +0300
committerAndrew Dolgov <[email protected]>2016-04-26 20:04:24 +0300
commit977cea1438dafcdc98756b070a1383e5887d64c1 (patch)
tree4a4e5d75d56c7c36c72a70d811d9db1926de7a52 /classes/db
parent9e84bab449f9ed55e02e60378b0af1521026f3b8 (diff)
actually check for failures properly in the dbupdater
Diffstat (limited to 'classes/db')
-rw-r--r--classes/db/mysql.php9
-rw-r--r--classes/db/mysqli.php9
-rw-r--r--classes/db/pgsql.php9
3 files changed, 21 insertions, 6 deletions
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 @@
<?php
class Db_Mysql implements IDb {
private $link;
+ private $last_error;
function connect($host, $user, $pass, $db, $port) {
$this->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 @@
<?php
class Db_Mysqli implements IDb {
private $link;
+ private $last_error;
function connect($host, $user, $pass, $db, $port) {
if ($port)
@@ -26,10 +27,10 @@ class Db_Mysqli implements IDb {
function query($query, $die_on_error = true) {
$result = @mysqli_query($this->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 @@
<?php
class Db_Pgsql implements IDb {
private $link;
+ private $last_error;
function connect($host, $user, $pass, $db, $port) {
$string = "dbname=$db user=$user";
@@ -38,11 +39,11 @@ class Db_Pgsql implements IDb {
$result = @pg_query($this->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");