diff options
author | elij <elij.mx@gmail.com> | 2011-04-26 11:52:11 -0700 |
---|---|---|
committer | Lukas Fleischer <archlinux@cryptocrack.de> | 2011-04-27 14:50:44 +0200 |
commit | c43558ba60ed027227010a9b93e37ee8b78be430 (patch) | |
tree | 12f29b4a4376c6f9713d7156b9446e2ea87d204a | |
parent | 10ea5f5ff63ee7626ba4ad5dfdf3a711c31249e3 (diff) | |
download | aurweb-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.inc | 12 | ||||
-rw-r--r-- | web/lib/config.inc.proto | 4 |
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Ă ", |