// 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
//* 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;
} // 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
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);
// 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);
// 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);
// 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);
$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
`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
// SQL free result
function sqlFreeResult ($resource) {
- if ((!is_resource($resource)) || (!isSqlLinkUp())) {
+ if ((!isValidSqlLink($resource)) || (!isSqlLinkUp())) {
// Abort here
return FALSE;
} // END - if
} // 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.
}
}
+// Checks whether given link is a valid SQL link
+function isValidSqlLink ($linkResource) {
+ // Is it a resource?
+ return is_resource($linkResource);
+}
+
// [EOF]
?>