diff options
author | Andrew Dolgov <[email protected]> | 2013-04-17 16:05:52 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2013-04-17 16:05:54 +0400 |
commit | aca75cb5cb323535099c7aef46a78ea3cec082f2 (patch) | |
tree | deed39d90fa490828cfc60dac772c9f53fee87b1 /classes | |
parent | 404e2e3603c852a3f82a21c14b8888005e2b3f99 (diff) |
reinstate error handlers; better DB error reporting on failed queries
Diffstat (limited to 'classes')
-rw-r--r-- | classes/db.php | 7 | ||||
-rw-r--r-- | classes/db/mysql.php | 6 | ||||
-rw-r--r-- | classes/db/pgsql.php | 5 | ||||
-rw-r--r-- | classes/idb.php | 1 | ||||
-rw-r--r-- | classes/logger/sql.php | 3 |
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; } |