[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