summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-04-17 16:05:52 +0400
committerAndrew Dolgov <[email protected]>2013-04-17 16:05:54 +0400
commitaca75cb5cb323535099c7aef46a78ea3cec082f2 (patch)
treedeed39d90fa490828cfc60dac772c9f53fee87b1 /classes
parent404e2e3603c852a3f82a21c14b8888005e2b3f99 (diff)
reinstate error handlers; better DB error reporting on failed queries
Diffstat (limited to 'classes')
-rw-r--r--classes/db.php7
-rw-r--r--classes/db/mysql.php6
-rw-r--r--classes/db/pgsql.php5
-rw-r--r--classes/idb.php1
-rw-r--r--classes/logger/sql.php3
5 files changed, 7 insertions, 15 deletions
diff --git a/classes/db.php b/classes/db.php
index 558d3e6b7..c3b627096 100644
--- a/classes/db.php
+++ b/classes/db.php
@@ -13,11 +13,10 @@ class Db implements IDb {
$this->adapter = new Db_Pgsql();
break;
default:
- user_error("Unknown DB_TYPE: " . DB_TYPE);
+ die("Unknown DB_TYPE: " . DB_TYPE);
}
$this->link = $this->adapter->connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT);
-
}
private function __clone() {
@@ -35,10 +34,6 @@ class Db implements IDb {
return("'$str'");
}
- function init() {
- //
- }
-
function connect($host, $user, $pass, $db, $port) {
//return $this->adapter->connect($host, $user, $pass, $db, $port);
return $this->link;
diff --git a/classes/db/mysql.php b/classes/db/mysql.php
index 64c35ebdc..241d2a063 100644
--- a/classes/db/mysql.php
+++ b/classes/db/mysql.php
@@ -25,10 +25,8 @@ class Db_Mysql implements IDb {
function query($query, $die_on_error = true) {
$result = mysql_query($query, $this->link);
if (!$result) {
- $query = htmlspecialchars($query);
- if ($die_on_error) {
- die("Query <i>$query</i> failed: " . ($this->link ? mysql_error($link) : "No connection"));
- }
+ user_error("Query $query failed: " . ($this->link ? mysql_error($this->link) : "No connection"),
+ $die_on_error ? E_USER_ERROR : E_USER_WARNING);
}
return $result;
}
diff --git a/classes/db/pgsql.php b/classes/db/pgsql.php
index 0f38fb8cb..bafd54ab2 100644
--- a/classes/db/pgsql.php
+++ b/classes/db/pgsql.php
@@ -39,9 +39,8 @@ class Db_Pgsql implements IDb {
if (!$result) {
$query = htmlspecialchars($query); // just in case
- if ($die_on_error) {
- die("Query <i>$query</i> failed [$result]: " . ($this->link ? pg_last_error($this->link) : "No connection"));
- }
+ user_error("Query $query failed: " . ($this->link ? pg_last_error($this->link) : "No connection"),
+ $die_on_error ? E_USER_ERROR : E_USER_WARNING);
}
return $result;
}
diff --git a/classes/idb.php b/classes/idb.php
index 1ca6925b4..16f760bf6 100644
--- a/classes/idb.php
+++ b/classes/idb.php
@@ -1,7 +1,6 @@
<?php
interface IDb {
function connect($host, $user, $pass, $db, $port);
- function init();
function escape_string($s, $strip_tags = true);
function query($query, $die_on_error = true);
function fetch_assoc($result);
diff --git a/classes/logger/sql.php b/classes/logger/sql.php
index c45841600..b0e0b0db5 100644
--- a/classes/logger/sql.php
+++ b/classes/logger/sql.php
@@ -6,6 +6,7 @@ class Logger_SQL {
if ($errno == E_NOTICE) return false;
if (Db::get()) {
+
$errno = Db::get()->escape_string($errno);
$errstr = Db::get()->escape_string($errstr);
$file = Db::get()->escape_string($file);
@@ -21,8 +22,8 @@ class Logger_SQL {
($errno, '$errstr', '$file', '$line', '$context', $owner_uid, NOW())");
return Db::get()->affected_rows($result) != 0;
-
}
+
return false;
}