X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fdb%2Flib-mysql3.php;h=77568f03380826e86581249321a966a92d884ee8;hb=c85ddc06cc16f2cd38ddd7d4c142a3f578bbab69;hp=c00b59971df0351ae72505547d74940f997aa217;hpb=263a089d8a499e0e26d0af9e7aa7639f88b8ca60;p=mailer.git diff --git a/inc/db/lib-mysql3.php b/inc/db/lib-mysql3.php index c00b59971d..77568f0338 100644 --- a/inc/db/lib-mysql3.php +++ b/inc/db/lib-mysql3.php @@ -18,6 +18,7 @@ * svn:keywords Date Revision" (autoprobset!) at least!!!!!! * * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * + * Copyright (c) 2009, 2010 by Mailer Developer Team * * For more information visit: http://www.mxchange.org * * * * This program is free software; you can redistribute it and/or modify * @@ -71,25 +72,26 @@ function SQL_QUERY ($sqlString, $F, $L) { // Remove \t, \n and \r from queries they may confuse some MySQL version I have heard $sqlString = str_replace("\t", ' ', str_replace("\n", ' ', str_replace("\r", ' ', $sqlString))); - // Compile config out - $sqlString = FILTER_COMPILE_CONFIG($sqlString, true); + // Replace {PER} + $sqlString = str_replace('{PER}', '%', $sqlString); + + // Compile config entries out + $eval = "\$sqlString = \"".FILTER_COMPILE_CONFIG(escapeQuotes($sqlString))."\";"; + eval($eval); // Starting time - $querytimeBefore = array_sum(explode(' ', microtime())); + $querytimeBefore = microtime(true); // Run SQL command - //* DEBUG: */ print('F=' . basename($F) . ',L=' . $L . 'sql=' . $sqlString . '
'); + //* DEBUG: */ print('F=' . basename($F) . ',L=' . $L . 'sql=' . htmlentities($sqlString) . '
'); $result = mysql_query($sqlString, SQL_GET_LINK()) or addFatalMessage(__FUNCTION__, __LINE__, $F . ' (' . $L . '):' . mysql_error() . '
Query string:
' . $sqlString); //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'sql=' . $sqlString . ',numRows=' . SQL_NUMROWS($result) . ',affected=' . SQL_AFFECTEDROWS()); - // Ending time - $querytimeAfter = array_sum(explode(' ', microtime())); - // Calculate query time - $queryTime = $querytimeAfter - $querytimeBefore; + $queryTime = microtime(true) - $querytimeBefore; // Add this query to array including timing addSqlToDebug($result, $sqlString, $queryTime, $F, $L); @@ -104,11 +106,11 @@ Query string:
incrementConfigEntry('sql_count'); // Debug output - if ((getOutputMode() != 1) && (isDebugModeEnabled()) && (isConfigEntrySet('DEBUG_SQL')) && (getConfig('DEBUG_SQL') == 'Y')) { + if ((getOutputMode() != 1) && (isDebugModeEnabled()) && (isSqlDebuggingEnabled())) { // // Debugging stuff... // - $fp = fopen(getConfig('CACHE_PATH') . 'mysql.log', 'a') or app_die(__FILE__, __LINE__, "Cannot write mysql.log!"); + $fp = fopen(getConfig('CACHE_PATH') . 'mysql.log', 'a') or app_die(__FILE__, __LINE__, 'Cannot write mysql.log!'); if (!isset($GLOBALS['sql_first_entry'])) { // Write first entry fwrite($fp, 'Module=' . getModule() . "\n"); @@ -133,6 +135,9 @@ Query string:
// SQL num rows function SQL_NUMROWS ($result) { + // Valid link resource? + if (!SQL_IS_LINK_UP()) return false; + // Link is not up, no rows by default $lines = false; @@ -143,9 +148,9 @@ function SQL_NUMROWS ($result) { // Is the result empty? Then we have an error! if (empty($lines)) $lines = '0'; - } elseif (SQL_IS_LINK_UP()) { - // No resource given, no lines found! - $lines = '0'; + } else { + // No resource given, please fix this + trigger_error('No resource given! result[]=' . gettype($result)); } // Return lines @@ -199,7 +204,7 @@ function SQL_FETCHARRAY ($res, $nr=0, $remove_numerical=true) { // Return row return $row; } else { - // Return a false here... + // Return a false, else some loops would go endless... return false; } } @@ -223,7 +228,7 @@ function SQL_CONNECT ($host, $login, $password, $F, $L) { SQL_SET_LINK($connect); // Destroy cache - unset($GLOBALS['sql_link_res']); + unset($GLOBALS['is_sql_link_up']); } // SQL select database @@ -250,7 +255,7 @@ function SQL_CLOSE ($F, $L) { SQL_SET_LINK(null); // Destroy cache - unset($GLOBALS['sql_link_res']); + unset($GLOBALS['is_sql_link_up']); // Return the result return $close; @@ -284,7 +289,7 @@ function SQL_QUERY_ESC ($qstring, $data, $F, $L, $run=true, $strip=true, $secure // Debugging // //* DEBUG: */ $fp = fopen(getConfig('CACHE_PATH') . 'escape_debug.log', 'a') or app_die(__FILE__, __LINE__, "Cannot write debug.log!"); - //* DEBUG: */ fwrite($fp, $F.'('.$L."): ".str_replace("\r", '', str_replace("\n", " ", $eval))."\n"); + //* DEBUG: */ fwrite($fp, $F.'('.$L."): ".str_replace("\r", '', str_replace("\n", ' ', $eval))."\n"); //* DEBUG: */ fclose($fp); if ($run === true) { @@ -401,14 +406,14 @@ function SQL_ALTER_TABLE ($sql, $F, $L) { // Do we have no entry on ADD or an entry on DROP? // 123 4 4 3 3 4 4 32 23 4 4 3 3 4 4 321 - if (((SQL_NUMROWS($result) == '0') && (strpos($sql, 'ADD') !== false)) || ((SQL_NUMROWS($result) == 1) && (strpos($sql, 'DROP') !== false))) { + if (((SQL_HASZERONUMS($result)) && (strpos($sql, 'ADD') !== false)) || ((SQL_NUMROWS($result) == 1) && (strpos($sql, 'DROP') !== false))) { // Do the query //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Executing: ' . $sql); $result = SQL_QUERY($sql, $F, $L, false); // Skip further attempt(s) break; - } elseif ((((SQL_NUMROWS($result) == 1) && (strpos($sql, 'ADD') !== false)) || ((SQL_NUMROWS($result) == '0') && (strpos($sql, 'DROP') !== false))) && ($columnName != 'KEY')) { + } elseif ((((SQL_NUMROWS($result) == 1) && (strpos($sql, 'ADD') !== false)) || ((SQL_HASZERONUMS($result)) && (strpos($sql, 'DROP') !== false))) && ($columnName != 'KEY')) { // Abort here because it is alreay there //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Skipped: ' . $sql); break; @@ -528,20 +533,26 @@ function SQL_IS_LINK_UP () { $linkUp = false; // Do we have cached this? - if (isset($GLOBALS['sql_link_res'])) { + if (isset($GLOBALS['is_sql_link_up'])) { // Then use this - $linkUp = $GLOBALS['sql_link_res']; + $linkUp = $GLOBALS['is_sql_link_up']; } else { // Get it $linkUp = is_resource(SQL_GET_LINK()); // And cache it - $GLOBALS['sql_link_res'] = $linkUp; + $GLOBALS['is_sql_link_up'] = $linkUp; } // Return the result return $linkUp; } +// Wrapper function to make code more readable +function SQL_HASZERONUMS ($result) { + // Just pass it through + return (SQL_NUMROWS($result) === 0); +} + // [EOF] ?>