+// Loads stats table
+function loadStatsTable () {
+ // Check if the link is up
+ if (!isSqlLinkUp()) return FALSE;
+
+ // Is it there for today?
+ if (!isStatsTableCreated()) {
+ // Then create a default one
+ createStatsTable();
+ } // END - if
+
+ // Load it from database
+ $result = sqlQueryEscaped("SELECT `stats_entry`, `stats_value` FROM `{?_MYSQL_PREFIX?}_stats_%s` ORDER BY `stats_entry` ASC",
+ array(
+ generateDateTime(time(), '6')
+ ), __FUNCTION__, __LINE__);
+
+ // Read all rows
+ while ($row = sqlFetchArray($result)) {
+ $GLOBALS['stats'][$row['stats_entry']] = $row['stats_value'];
+ } // END - while
+
+ // Free the result
+ sqlFreeResult($result);
+}
+
+// Checks if the the statistics table is created
+function isStatsTableCreated () {
+ // Check if the link is up
+ if (!isSqlLinkUp()) return FALSE;
+
+ // Ask for it
+ $result = sqlQueryEscaped("SHOW TABLES LIKE '{?_MYSQL_PREFIX?}_stats_%s'",
+ array(generateDateTime(time(), '6')), __FUNCTION__, __LINE__);
+
+ // Is there a row?
+ return sqlNumRows($result);
+}
+
+// Create the dummy table
+function createStatsTable () {
+ // Check if the link is up
+ if (!isSqlLinkUp()) return FALSE;
+
+ // Create it here
+ $result = sqlQueryEscaped("CREATE TEMPORARY TABLE IF NOT EXISTS `{?_MYSQL_PREFIX?}_stats_%s` (
+`stats_entry` VARCHAR(100) NOT NULL DEFAULT '',
+`stats_value` BIGINT(20) NOT NULL DEFAULT 0,
+PRIMARY KEY (`stats_entry`)
+) ENGINE = HEAP COMMENT = 'Temporary statistics table'",
+ array(generateDateTime(time(), '6')), __FUNCTION__, __LINE__);
+}
+
+// Write all entries to the table
+function writeStatsTable () {
+ // Check if the link is up
+ if (!isSqlLinkUp()) return FALSE;
+
+ // Empty the table first
+ sqlQueryEscaped('TRUNCATE `{?_MYSQL_PREFIX?}_stats_%s`',
+ array(generateDateTime(time(), '6')), __FUNCTION__, __LINE__);
+
+ // Begin the SQL command
+ $sql = sprintf('REPLACE INTO `{?_MYSQL_PREFIX?}_stats_%s` (`stats_entry`, `stats_value`) VALUES ',
+ generateDateTime(time(), '6'));
+
+ // Add all entries to the final query
+ foreach ($GLOBALS['stats'] as $entry => $value) {
+ $sql .= sprintf("('%s', %s),", $entry, bigintval($value));
+ } // END - foreach
+
+ // Finalize it and run it
+ sqlQuery(substr($sql, 0, -1), __FUNCTION__, __LINE__);
+}
+