X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fdb%2Flib-mysql3.php;h=fd86300e36f564c9617c005197002a3a793df0bd;hp=5414a494aed972b5916ae3b7b507e49a3f2543af;hb=7770a9545292d628afd2be4f58f86da5c9139619;hpb=f2b603aed42bfdf7a94611d7bae71fe3a1048890 diff --git a/inc/db/lib-mysql3.php b/inc/db/lib-mysql3.php index 5414a494ae..fd86300e36 100644 --- a/inc/db/lib-mysql3.php +++ b/inc/db/lib-mysql3.php @@ -52,13 +52,13 @@ function sqlQuery ($sqlString, $file, $line, $enableCodes = TRUE) { // Empty query string or link is not up? if (empty($sqlStringModified)) { // Empty SQL string! - reportBug(__FUNCTION__, __LINE__, sprintf("SQL string is empty, please fix this: file=%s, line=%s", + reportBug(__FUNCTION__, __LINE__, sprintf('SQL string is empty, please fix this: file=%s, line=%s', basename($file), $line )); } elseif (!isSqlLinkUp()) { // We should not quietly ignore this - reportBug(__FUNCTION__, __LINE__, sprintf("Cannot query database: sqlString=%s,file=%s,line=%s", + reportBug(__FUNCTION__, __LINE__, sprintf('Cannot query database: sqlString=%s,file=%s,line=%s', $sqlStringModified, basename($file), $line @@ -94,7 +94,7 @@ function sqlQuery ($sqlString, $file, $line, $enableCodes = TRUE) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'file=' . basename($file) . ',line=' . $line . ',sql=' . $GLOBALS['last_sql']); $result = mysql_query($GLOBALS['last_sql'], getSqlLink()) or sqlError($file, $line, 'file='. basename($file) . ',line=' . $line . ':mysql_error()=' . mysql_error() . ',last_query=' . $GLOBALS['last_sql']); - //* DEBUG: */ logDebugMessage($file, $line, 'sql=' . $GLOBALS['last_sql'] . ',affected=' . sqlAffectedRows() . ',numRows='.(is_resource($result) ? sqlNumRows($result) : gettype($result))); + //* DEBUG: */ logDebugMessage($file, $line, 'sql=' . $GLOBALS['last_sql'] . ',affected=' . sqlAffectedRows() . ',numRows='.(isValidSqlLink($result) ? sqlNumRows($result) : gettype($result))); // Calculate query time $queryTime = microtime(TRUE) - $querytimeBefore; @@ -121,7 +121,7 @@ function sqlQuery ($sqlString, $file, $line, $enableCodes = TRUE) { } // END - if // Append debug line - appendLineToFile(getCachePath() . 'mysql.log', basename($file) . '|LINE=' . $line . '|NUM=' . (is_resource($result) ? sqlNumRows($result) : 'false') . '|AFFECTED=' . sqlAffectedRows() . '|QUERYTIME:' . ($queryTime * 1000) . 'ms): ' . str_replace(array(chr(13), PHP_EOL), array('', ' '), $GLOBALS['last_sql'])); + appendLineToFile(getCachePath() . 'mysql.log', basename($file) . '|LINE=' . $line . '|NUM=' . (isValidSqlLink($result) ? sqlNumRows($result) : 'false') . '|AFFECTED=' . sqlAffectedRows() . '|QUERYTIME:' . ($queryTime * 1000) . 'ms): ' . str_replace(array(chr(13), PHP_EOL), array('', ' '), $GLOBALS['last_sql'])); } // END - if // Increment stats entry @@ -143,7 +143,7 @@ function sqlNumRows ($resource) { if (isset($GLOBALS['sql_numrows'][intval($resource)])) { // Use cache $lines = $GLOBALS['sql_numrows'][intval($resource)]; - } elseif (is_resource($resource)) { + } elseif (isValidSqlLink($resource)) { // Get the count of rows from database $lines = mysql_num_rows($resource); @@ -173,7 +173,7 @@ function sqlAffectedRows () { // SQL fetch row function sqlFetchRow ($resource) { // Is $resource valid? - if ((!is_resource($resource)) || (!isSqlLinkUp())) return FALSE; + if ((!isValidSqlLink($resource)) || (!isSqlLinkUp())) return FALSE; // Fetch the data and return it return mysql_fetch_row($resource); @@ -182,7 +182,7 @@ function sqlFetchRow ($resource) { // SQL fetch array function sqlFetchArray ($resource) { // Is $resource valid? - if ((!is_resource($resource)) || (!isSqlLinkUp())) return FALSE; + if ((!isValidSqlLink($resource)) || (!isSqlLinkUp())) return FALSE; // Load row as array from database $row = mysql_fetch_assoc($resource); @@ -200,7 +200,7 @@ function sqlFetchArray ($resource) { // SQL result function sqlResult ($resource, $row, $field = '0') { // Is $resource valid? - if ((!is_resource($resource)) || (!isSqlLinkUp())) return FALSE; + if ((!isValidSqlLink($resource)) || (!isSqlLinkUp())) return FALSE; // Run the result command $result = mysql_result($resource, $row, $field); @@ -215,14 +215,14 @@ function sqlConnectToDatabase ($host, $login, $password, $file, $line) { $linkResource = mysql_connect($host, $login, $password) or sqlError($file, $line, mysql_error()); // Set the link resource - if (is_resource($linkResource)) { + if (isValidSqlLink($linkResource)) { /* * A non-resource (boolean) may happen on installation phase which * shall not be set here. Only valid link resources shall be set so * isSqlLinkUp() will only return 'true' if there is really a * working database link. */ - setSqlLink(__FUNCTION__, __LINE__, $linkResource); + setSqlLink($file . ':' . __FUNCTION__, $line . ':' . __LINE__, $linkResource); // Init charsets (UTF-8 is default now) sqlQuery("SET @@ -230,7 +230,10 @@ function sqlConnectToDatabase ($host, $login, $password, $file, $line) { `character_set_client`='utf8', `character_set_connection`='utf8', `character_set_database`='utf8', - `character_set_server`='utf8'", __FUNCTION__, __LINE__); + `character_set_server`='utf8'", $file . ':' . __FUNCTION__, $line . ':' . __LINE__); + + // Disallow subtraction for unsigned columns + sqlQuery("SET `sql_mode`='NO_UNSIGNED_SUBTRACTION'", $file . ':' . __FUNCTION__, $line . ':' . __LINE__); } // END - if // Return the resource @@ -270,7 +273,7 @@ function sqlCloseLink ($file, $line) { // SQL free result function sqlFreeResult ($resource) { - if ((!is_resource($resource)) || (!isSqlLinkUp())) { + if ((!isValidSqlLink($resource)) || (!isSqlLinkUp())) { // Abort here return FALSE; } // END - if @@ -374,7 +377,7 @@ function sqlError ($file, $line, $message) { } // END - if // Is there installation phase? - if (isInstallationPhase()) { + if (isInstaller()) { /* * In installation phase, we don't want SQL errors abort e.g. connection * tests, so just log it away. @@ -386,5 +389,11 @@ function sqlError ($file, $line, $message) { } } +// Checks whether given link is a valid SQL link +function isValidSqlLink ($linkResource) { + // Is it a resource? + return is_resource($linkResource); +} + // [EOF] ?>