summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorelij <elij.mx@gmail.com>2011-04-26 11:52:11 -0700
committerLukas Fleischer <archlinux@cryptocrack.de>2011-04-27 14:50:44 +0200
commitc43558ba60ed027227010a9b93e37ee8b78be430 (patch)
tree12f29b4a4376c6f9713d7156b9446e2ea87d204a
parent10ea5f5ff63ee7626ba4ad5dfdf3a711c31249e3 (diff)
downloadaurweb-c43558ba60ed027227010a9b93e37ee8b78be430.tar.xz
add SQL_DEBUG variable and database logging
add a hook to db_query to log all sql queries when SQL_DEBUG is set Additionally, provide better logging for sql error situations (provide backtrace as well as error message). Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
-rw-r--r--web/lib/aur.inc12
-rw-r--r--web/lib/config.inc.proto4
2 files changed, 16 insertions, 0 deletions
diff --git a/web/lib/aur.inc b/web/lib/aur.inc
index 66ae1c2..5eed8e7 100644
--- a/web/lib/aur.inc
+++ b/web/lib/aur.inc
@@ -238,10 +238,22 @@ function db_query($query="", $db_handle="") {
if (!$query) {
return FALSE;
}
+
if (!$db_handle) {
die("DB handle was not provided to db_query");
}
+
+ if (SQL_DEBUG == 1) {
+ $bt = debug_backtrace();
+ error_log("DEBUG: ".$bt[0]['file'].":".$bt[0]['line']." query: $query\n");
+ }
+
$result = @mysql_query($query, $db_handle);
+ if (!$result) {
+ $bt = debug_backtrace();
+ error_log("ERROR: near ".$bt[0]['file'].":".$bt[0]['line']." in query: $query\n -> ".mysql_error($db_handle));
+ }
+
return $result;
}
diff --git a/web/lib/config.inc.proto b/web/lib/config.inc.proto
index 80a7e54..43c64d2 100644
--- a/web/lib/config.inc.proto
+++ b/web/lib/config.inc.proto
@@ -20,6 +20,10 @@ define( "PASSWD_MAX_LEN", 128 );
# Default language for displayed messages in the web interface.
define("DEFAULT_LANG", "en");
+# Enable debug sql output. This sends each query to error_log. Useful for
+# development. Should not be enabled in production. Default to 0 (off).
+define("SQL_DEBUG", 0);
+
# Languages we have translations for
$SUPPORTED_LANGS = array(
"ca" => "CatalĂ ",