// Set the link resource
SQL_SET_LINK($linkResource);
-
- // Destroy cache
- unset($GLOBALS['is_sql_link_up']);
}
// SQL select database
// Close link
SQL_SET_LINK(null);
- // Destroy cache
- unset($GLOBALS['is_sql_link_up']);
-
// Return the result
return $close;
}
logDebugMessage(__FUNCTION__, __LINE__, 'Possible problem: ' . $sql . ',hasZeroNums=' . intval(SQL_HASZERONUMS($result)) . '');
}
} // END - foreach
- } elseif ((getConfig('_TABLE_TYPE') == 'InnoDB') && (strpos($sql, 'FULLTEXT') !== false)) {
+ } elseif ((getTableType() == 'InnoDB') && (strpos($sql, 'FULLTEXT') !== false)) {
// Skip this query silently
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Skipped FULLTEXT: sql=%s,tableName=%s,hasZeroNums=%d,file=%s,line=%s", $sql, $tableName, intval((is_bool($result)) ? 0 : SQL_HASZERONUMS($result)), $F, $L));
} elseif ($noIndex === false) {
} // END while
} // END - if
- // Show indexes
- $result = SQL_QUERY_ESC("SHOW INDEX FROM `%s`", array($tableName), __FUNCTION__, __LINE__);
-
- // Non-skipping is default for ADD
- $skip = false;
-
- // But should we DROP?
- if ($tableArray[3] == 'DROP') {
- // Then skip if nothing found
- $skip = true;
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Going to drop key ' . $keyName);
- } // END - if
-
- // Walk through all
- while ($content = SQL_FETCHARRAY($result)) {
- // Is it found?
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'columnName='.$keyName.',content=<pre>' . print_r($content, true) . '</pre>');
- if (($content['Key_name'] == $keyName) && ($tableArray[3] == 'ADD')) {
- // Skip this query!
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("ADD: Skiped: %s", $sql));
- $skip = true;
- break;
- } elseif (($content['Key_name'] == $keyName) && ($tableArray[3] == 'DROP')) {
- // Don't skip this!
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("DROP: Not skiped: %s", $sql));
- $skip = false;
- break;
- }
- } // END - while
-
- // Free result
- SQL_FREERESULT($result);
-
// Shall we run it?
- if ($skip === false) {
+ if (!isSqlTableIndexAdded($tableName, $tableArray[3], $keyName)) {
// Send it to the SQL_QUERY() function
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $sql);
$result = SQL_QUERY($sql, $F, $L, $enableCodes);
return;
} elseif ((!is_resource($link)) && (!is_null($link))) {
// This should never happen!
- debug_report_bug(__FUNCTION__, __LINE__, sprintf("link is not resource or null. Type: %s", gettype($link)));
+ debug_report_bug(__FUNCTION__, __LINE__, sprintf("Type of link is not resource or null, type=%s", gettype($link)));
} // END - if
// Set it
$GLOBALS['sql_link'] = $link;
+
+ // Re-init cache
+ $GLOBALS['is_sql_link_up'] = is_resource($link);
}
// Checks if the link is up
return $GLOBALS['sql_strings'][$sqlString];
}
+// Check if there is a SQL table created
+function isSqlTableCreated ($tableName) {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__][$tableName])) {
+ // Check if the table is there
+ $result = SQL_QUERY_ESC("SHOW TABLES FROM `{?__DB_NAME?}` WHERE `Tables_in_{?__DB_NAME?}`='{?_MYSQL_PREFIX?}_%s'",
+ array($tableName), __FILE__, __LINE__);
+
+ // Is there an entry?
+ $GLOBALS[__FUNCTION__][$tableName] = (SQL_NUMROWS($result) == 1);
+ /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',numRows=' . intval($GLOBALS[__FUNCTION__][$tableName]));
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__][$tableName];
+}
+
+// Checks depending on the mode if the table is there
+function isSqlTableIndexAdded ($tableName, $mode, $keyName) {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__][$tableName][$mode])) {
+ // Show indexes
+ $result = SQL_QUERY_ESC("SHOW INDEX FROM `%s`", array($tableName), __FUNCTION__, __LINE__);
+
+ // Non-skipping is default for ADD
+ $GLOBALS[__FUNCTION__][$tableName][$mode] = false;
+
+ // But should we DROP?
+ if ($mode == 'DROP') {
+ // Then skip if nothing found
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Going to drop key ' . $keyName);
+ $GLOBALS[__FUNCTION__][$tableName][$mode] = true;
+ } // END - if
+
+ // Walk through all
+ while ($content = SQL_FETCHARRAY($result)) {
+ // Is it found?
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'columnName='.$keyName.',content=<pre>' . print_r($content, true) . '</pre>');
+ if (($content['Key_name'] == $keyName) && ($mode == 'ADD')) {
+ // Skip this query!
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("ADD: Skiped: %s", $sql));
+ $GLOBALS[__FUNCTION__][$tableName][$mode] = true;
+ break;
+ } elseif (($content['Key_name'] == $keyName) && ($mode == 'DROP')) {
+ // Don't skip this!
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("DROP: Not skiped: %s", $sql));
+ $GLOBALS[__FUNCTION__][$tableName][$mode] = false;
+ break;
+ }
+ } // END - while
+
+ // Free result
+ SQL_FREERESULT($result);
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__][$tableName][$mode];
+}
+
// [EOF]
?>