[aur-dev] [PATCH 1/1] add SQL_DEBUG variable and database logging
elij
elij.mx at gmail.com
Tue Apr 26 14:52:11 EDT 2011
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).
---
web/lib/aur.inc | 12 ++++++++++++
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 4e94340..2c6cd0d 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à",
--
1.7.4.1
More information about the aur-dev
mailing list