Query time added to debug logfile
[mailer.git] / inc / db / lib-mysql3.php
index f9f1e74d0241bb86b4d544b89edab0247797ca9d..b64e3937ec828ef647e2bec44dc6b9be87949201 100644 (file)
@@ -44,30 +44,39 @@ function SQL_QUERY($sql_string, $F, $L) {
        // Remove \t, \n and \r from queries they may confuse some MySQL version I have heard
        $sql_string = str_replace("\t", " ", str_replace("\n", " ", str_replace("\r", " ", $sql_string)));
 
+       // Starting time
+       $querytimeBefore = array_sum(explode(' ', microtime()));
+
        // Run SQL command
        $result = @mysql_query($sql_string, $link)
         or ADD_FATAL($F." (".$L."):".mysql_error()."<br />
 ".MYSQL_QUERY_STRING."<br />
 ".$sql_string);
 
-        // Count this query
-        if (!isset($_CONFIG['sql_count'])) $_CONFIG['sql_count'] = 0;
-        $_CONFIG['sql_count']++;
+       // Starting time
+       $querytimeAfter = array_sum(explode(' ', microtime()));
+
+       // Calculate query time
+       $queryTime = $querytimeAfter - $querytimeBefore;
+
+       // Count this query
+       if (!isset($_CONFIG['sql_count'])) $_CONFIG['sql_count'] = 0;
+       $_CONFIG['sql_count']++;
 
-        // Debug output
-        //* DEBUG: */ print "Query=<pre>".$sql_string."</pre>, affected=<b>".SQL_AFFECTEDROWS()."</b>, numrows=<b>".SQL_NUMROWS($result)."</b><br />\n";
+       // Debug output
+       //* DEBUG: */ print "Query=<pre>".$sql_string."</pre>, affected=<b>".SQL_AFFECTEDROWS()."</b>, numrows=<b>".SQL_NUMROWS($result)."</b><br />\n";
 
        if (($CSS != "1") && ($CSS != "-1") && (isBooleanConstantAndTrue('DEBUG_MODE')) && (DEBUG_SQL)) {
                //
                // Debugging stuff...
                //
-               $fp = @fopen(PATH."debug.log", 'a') or mxchange_die("Cannot write debug.log!");
+               $fp = @fopen(PATH."inc/cache/debug.log", 'a') or mxchange_die("Cannot write debug.log!");
                if (!isset($OK)) {
                        // Write first entry
                        fwrite($fp, "Module=".$GLOBALS['module']."\n");
                        $OK = true;
                }
-               fwrite($fp, $F."(LINE=".$L."|NUM=".SQL_NUMROWS($result)."|AFFECTED=".SQL_AFFECTEDROWS()."): ".str_replace('\r', "", str_replace('\n', " ", $sql_string))."\n");
+               fwrite($fp, $F."(LINE=".$L."|NUM=".SQL_NUMROWS($result)."|AFFECTED=".SQL_AFFECTEDROWS()."|QUERYTIME:".$queryTime."): ".str_replace('\r', "", str_replace('\n', " ", $sql_string))."\n");
                fclose($fp);
        }
 
@@ -84,10 +93,13 @@ function SQL_QUERY($sql_string, $F, $L) {
 
 // SQL num rows
 function SQL_NUMROWS($result) {
-       if ($result != false) {
+       // Is the result a valid resource?
+       if (is_resource($result)) {
+               // Get the count of rows from database
                $lines = @mysql_num_rows($result);
-               if (empty($lines)) $lines = "0";
 
+               // Is the result empty? Then we have an error!
+               if (empty($lines)) $lines = "0";
        } else {
                // No resource given, no lines found!
                $lines = "0";