// SQL queries
function SQL_QUERY ($sql_string, $F, $L) {
// Link is up?
- if (!SQL_IS_LINK_UP()) return false;
+ if (!SQL_IS_LINK_UP()) {
+ // We should not quietly ignore this!
+ trigger_error(sprintf("Cannot query database: sql_string=%s,file=%s,line=%s",
+ $sql_string,
+ basename($F),
+ $L
+ ));
+
+ // Return 'false' because it has failed
+ return false;
+ } // END - if
// 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)));
// Replace {!_MYSQL_PREFIX!} with constant, closes #84. Thanks to profi-concept
- $sql_string = str_replace("{!_MYSQL_PREFIX!}", constant('_MYSQL_PREFIX'), $sql_string);
+ $sql_string = str_replace("{!_MYSQL_PREFIX!}", getConfig('_MYSQL_PREFIX'), $sql_string);
// Replace {!_TABLE_TYPE!} with constant
- $sql_string = str_replace("{!_TABLE_TYPE!}", constant('_TABLE_TYPE'), $sql_string);
+ $sql_string = str_replace("{!_TABLE_TYPE!}", getConfig('_TABLE_TYPE'), $sql_string);
// Starting time
$querytimeBefore = array_sum(explode(' ', microtime()));
// Run SQL command
- //* DEBUG: */ echo $sql_string."<br />\n";
+ //* DEBUG: */ OUTPUT_HTML($sql_string."<br />");
$result = mysql_query($sql_string, SQL_GET_LINK())
- or addFatalMessage(__FUNCTION__, __LINE__, $F." (".$L."):".mysql_error()."<br />
+ or addFatalMessage(__FUNCTION__, __LINE__, $F." (".$L."):".mysql_error()."<br />
Query string:<br />
".$sql_string);
+ //* DEBUG: */ OUTPUT_HTML(__LINE__ . ': numRows=' . SQL_NUMROWS($result) . ',affected=' . SQL_AFFECTEDROWS() . "<br />");
// Ending time
$querytimeAfter = array_sum(explode(' ', microtime()));
incrementConfigEntry('sql_count');
// Debug output
- //* DEBUG: */ print "Query=<pre>".$sql_string."</pre>, affected=<strong>".SQL_AFFECTEDROWS()."</strong>, numrows=<strong>".SQL_NUMROWS($result)."</strong><br />\n";
- if (($GLOBALS['output_mode'] != "1") && ($GLOBALS['output_mode'] != "-1") && (isDebugModeEnabled()) && (isBooleanConstantAndTrue('DEBUG_SQL'))) {
+ //* DEBUG: */ OUTPUT_HTML("Query=<pre>".$sql_string."</pre>, affected=<strong>".SQL_AFFECTEDROWS()."</strong>, numrows=<strong>".SQL_NUMROWS($result)."</strong><br />");
+ if ((getOutputMode() != '1') && (getOutputMode() != '-1') && (isDebugModeEnabled()) && (getConfig('DEBUG_SQL') == 'Y')) {
//
// Debugging stuff...
//
- $fp = fopen(constant('PATH')."inc/cache/mysql.log", 'a') or app_die(__FILE__, __LINE__, "Cannot write mysql.log!");
+ $fp = fopen(constant('PATH') . 'inc/cache/mysql.log', 'a') or app_die(__FILE__, __LINE__, "Cannot write mysql.log!");
if (!isset($GLOBALS['sql_first_entry'])) {
// Write first entry
- fwrite($fp, "Module=".$GLOBALS['module']."\n");
+ fwrite($fp, 'Module=' . getModule() . "\n");
$GLOBALS['sql_first_entry'] = true;
} // END - if
- fwrite($fp, $F."(LINE=".$L."|NUM=".SQL_NUMROWS($result)."|AFFECTED=".SQL_AFFECTEDROWS()."|QUERYTIME:".$queryTime."): ".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);
} // END - if
if (is_array($row)) {
// Shall we remove numerical data here automatically?
if ($remove_numerical) {
- // So let's remove all numerical elements to save memory!
+ // So let's remove all numerical elements to save memory!
$max = count($row);
for ($idx = 0; $idx < ($max / 2); $idx++) {
// Remove entry
} // END - if
// Do we need to update cache/db counter?
- //* DEBUG: */ echo "DB=".getConfig('db_hits').",CACHE=".getConfig('cache_hits')."<br />\n";
+ //* DEBUG: */ OUTPUT_HTML("DB=".getConfig('db_hits').",CACHE=".getConfig('cache_hits')."<br />");
if ((GET_EXT_VERSION('cache') >= '0.0.7') && (getConfig('db_hits') > 0) && (getConfig('cache_hits') > 0) && (isCacheInstanceValid())) {
// Add new hits
incrementConfigEntry('db_hits', getConfig('db_hits_run'));
// Update counter for db/cache
- updateConfiguration(array('db_hits', 'cache_hits'), array(getConfig(('db_hits')), getConfig(('cache_hits'))));
+ updateConfiguration(array('db_hits', 'cache_hits'), array(getConfig('db_hits'), getConfig('cache_hits')));
} // END - if
// Close database link and forget the link
- $close = mysql_close(SQL_GET_LINK()) or addFatalMessage(__FUNCTION__, __LINE__, $F." (".$L."):".mysql_error());
+ $close = mysql_close(SQL_GET_LINK())
+ or addFatalMessage(__FUNCTION__, __LINE__, $F . ' (' . $L . '):'.mysql_error());
// Close link
SQL_SET_LINK(null);
if (!SQL_IS_LINK_UP()) return false;
// Init variable
- $query = "failed";
+ $query = 'failed';
if ($strip === true) {
- $strip = "true";
+ $strip = 'true';
} else {
- $strip = "false";
+ $strip = 'false';
}
if ($secure === true) {
- $secure = "true";
+ $secure = 'true';
} else {
- $secure = "false";
+ $secure = 'false';
}
$eval = "\$query = sprintf(\"".$qstring."\"";
}
} // END - foreach
$eval .= ");";
- //
+
// Debugging
//
//* DEBUG: */ $fp = fopen(constant('PATH')."inc/cache/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);
// Run the code
eval($eval);
// Was the eval() command fine?
- if ($query == "failed") {
+ if ($query == 'failed') {
// Something went wrong?
- debug_report_bug("eval={$eval}");
+ debug_report_bug('eval=' . $eval);
} // END - if
if ($run === true) {
return smartAddSlashes($str);
} elseif (function_exists('mysql_real_escape_string')) {
// The new and improved version
- //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):str={$str}<br />\n";
+ //* DEBUG: */ OUTPUT_HTML(__FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):str={$str}<br />");
return mysql_real_escape_string($str, SQL_GET_LINK());
} elseif (function_exists('mysql_escape_string')) {
// The obsolete function
} // END - if
// Prepare the SQL statement
- $sql = "SELECT `".implode("`,`", $columns)."` FROM `{!_MYSQL_PREFIX!}_%s` WHERE ``='%s' LIMIT 1";
+ $sql = "SELECT `".implode("`,`", $columns)."` FROM `{!_MYSQL_PREFIX!}_%s` WHERE `%s`='%s' LIMIT 1";
// Return the result
return SQL_QUERY_ESC($sql,
array(
- bigintval($id),
$table,
- $idRow
- ), $F, $L);
+ $idRow,
+ bigintval($id),
+ ), $F, $L
+ );
}
// ALTER TABLE wrapper function
$result = false;
// Determine index/fulltext/unique word
- // 12 3 3 2 2 3 3 2 2 3 3 21
- $noIndex = ((ereg("INDEX", $sql) == false) && (ereg("FULLTEXT", $sql) == false) && (ereg("UNIQUE", $sql) == false));
+ $noIndex = (
+ (
+ strpos($sql, 'INDEX') === false
+ ) && (
+ strpos($sql, 'FULLTEXT') === false
+ ) && (
+ strpos($sql, 'UNIQUE') === false
+ )
+ );
// Extract table name
$tableArray = explode(" ", $sql);
- $tableName = str_replace("`", '', $tableArray[2]);
+ $tableName = str_replace('`', '', $tableArray[2]);
// Shall we add/drop?
- if (((ereg("ADD", $sql)) || (ereg("DROP", $sql))) && ($noIndex)) {
+ if (((strpos($sql, 'ADD') !== false) || (strpos($sql, 'DROP') !== false)) && ($noIndex === true)) {
// And column name as well
- $columnName = str_replace("`", '', $tableArray[4]);
+ $columnName = str_replace('`', '', $tableArray[4]);
// Get column information
- $result = SQL_QUERY_ESC("SHOW COLUMNS FROM %s LIKE '%s'",
+ $result = SQL_QUERY_ESC("SHOW COLUMNS FROM `%s` LIKE '%s'",
array($tableName, $columnName), __FILE__, __LINE__);
// Do we have no entry on ADD or an entry on DROP?
- // 123 4 4 3 3 4 432 23 4 4 3 3 4 4321
- if (((SQL_NUMROWS($result) == 0) && (ereg("ADD", $sql))) || ((SQL_NUMROWS($result) == 1) && (ereg("DROP", $sql)))) {
+ // 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))) {
// Do the query
- //* DEBUG: */ print __LINE__.':'.$sql."<br />\n";
+ //* DEBUG: */ OUTPUT_HTML(__LINE__.':'.$sql."<br />");
$result = SQL_QUERY($sql, $F, $L, false);
} // END - if
- } elseif ((constant('_TABLE_TYPE') == "InnoDB") && (ereg("FULLTEXT", $sql))) {
+ } elseif ((getConfig('_TABLE_TYPE') == 'InnoDB') && (strpos($sql, 'FULLTEXT') !== false)) {
// Skip this query silently
//* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Skipped FULLTEXT: sql=%s,file=%s,line=%s", $sql, $F, $L));
} elseif (!$noIndex) {
// And column name as well
- $columnName = str_replace("`", '', $tableArray[4]);
+ $columnName = str_replace('`', '', $tableArray[4]);
// Is this "UNIQUE" or so? FULLTEXT has been handled the elseif() block above
- if (in_array(strtoupper($columnName), array("INDEX", "UNIQUE", "KEY", "FULLTEXT"))) {
+ if (in_array(strtoupper($columnName), array('INDEX', 'UNIQUE', 'KEY', 'FULLTEXT'))) {
// Init loop
- $begin = 1; $columnName = ",";
- while (strpos($columnName, ",") !== false) {
+ $begin = 1; $columnName = ',';
+ while (strpos($columnName, ',') !== false) {
// Use last
- $columnName = str_replace("`", '', $tableArray[count($tableArray) - $begin]);
- //* DEBUG: */ print __LINE__.':'.$columnName."----------------".$begin."<br />\n";
+ $columnName = str_replace('`', '', $tableArray[count($tableArray) - $begin]);
+ //* DEBUG: */ OUTPUT_HTML(__LINE__.':'.$columnName."----------------".$begin."<br />");
// Remove brackes
- $columnName = str_replace("(", '', str_replace(")", '', $columnName));
- //* DEBUG: */ print __LINE__.':'.$columnName."----------------".$begin."<br />\n";
+ $columnName = str_replace('(', '', str_replace(')', '', $columnName));
+ //* DEBUG: */ OUTPUT_HTML(__LINE__.':'.$columnName."----------------".$begin."<br />");
// Continue
$begin++;
} // END - if
// Show indexes
- $result = SQL_QUERY_ESC("SHOW INDEX FROM %s",
+ $result = SQL_QUERY_ESC("SHOW INDEX FROM `%s`",
array($tableName), __FILE__, __LINE__);
// Walk through all
$skip = false;
while ($content = SQL_FETCHARRAY($result)) {
// Is it found?
- //* DEBUG: */ print "<pre>".print_r($content, true)."</pre>";
+ //* DEBUG: */ OUTPUT_HTML("<pre>".print_r($content, true)."</pre>");
if (($content['Column_name'] == $columnName) || ($content['Key_name'] == $columnName)) {
// Skip this query!
//* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Skiped: %s", $sql));
// Shall we run it?
if (!$skip) {
// Send it to the SQL_QUERY() function
- //* DEBUG: */ print __LINE__.':'.$sql."<br />\n";
+ //* DEBUG: */ OUTPUT_HTML(__LINE__.':'.$sql."<br />");
$result = SQL_QUERY($sql, $F, $L, false);
} // END - if
} else {
// Other ALTER TABLE query
- //* DEBUG: */ print __LINE__.':'.$sql."<br />\n";
+ //* DEBUG: */ OUTPUT_HTML(__LINE__.':'.$sql."<br />");
$result = SQL_QUERY($sql, $F, $L, false);
}