function maintenance() { $iDeletedRecords = 0; foreach ($this->_aSystems as $aSystem) { if (!$aSystem['is_on']) { continue; } $sPre = $aSystem['row_prefix']; $iDeletedRecords += $GLOBALS['MySQL']->query("DELETE FROM `{$aSystem['table_track']}` WHERE `{$sPre}date` < DATE_SUB(NOW(), INTERVAL " . BX_OLD_VOTES . " SECOND)"); $GLOBALS['MySQL']->query("OPTIMIZE TABLE `{$aSystem['table_track']}`"); } return $iDeletedRecords; }
function clean_database() { $db_clean_vkiss = (int) getParam("db_clean_vkiss"); $db_clean_profiles = (int) getParam("db_clean_profiles"); $db_clean_msg = (int) getParam("db_clean_msg"); $db_clean_visits = (int) getParam("db_clean_members_visits"); $db_clean_banners_info = (int) getParam("db_clean_banners_info"); //clear from `sys_banners_shows` if (db_res("DELETE FROM `sys_banners_shows` WHERE `Date` < UNIX_TIMESTAMP( NOW() - INTERVAL {$db_clean_banners_info} DAY )")) { db_res("OPTIMIZE TABLE `sys_banners_shows`"); } //clear from `sys_banners_clicks` if (db_res("DELETE FROM `sys_banners_clicks` WHERE `Date` < UNIX_TIMESTAMP( NOW() - INTERVAL {$db_clean_banners_info} DAY )")) { db_res("OPTIMIZE TABLE `sys_banners_clicks`"); } // clear from `sys_messages` if (db_res("DELETE FROM `sys_messages` WHERE FIND_IN_SET('sender', `Trash`) AND FIND_IN_SET('recipient', `Trash`)")) { db_res("OPTIMIZE TABLE `sys_messages`"); } //clear from `sys_ip_members_visits` if (db_res("DELETE FROM `sys_ip_members_visits` WHERE `DateTime` < NOW() - INTERVAL {$db_clean_visits} DAY")) { db_res("OPTIMIZE TABLE `sys_ip_members_visits`"); } // clear ban table if (db_res("DELETE FROM `sys_admin_ban_list` WHERE `DateTime` + INTERVAL `Time` SECOND < NOW()")) { db_res("OPTIMIZE TABLE `sys_admin_ban_list`"); } // profile_delete if ($db_clean_profiles > 0) { $res = db_res("SELECT `ID` FROM `Profiles` WHERE (`DateLastNav` < NOW() - INTERVAL {$db_clean_profiles} DAY) AND (`Couple` > `ID` OR `Couple` = 0)"); if ($res) { $db_clean_profiles_num = mysql_num_rows($res); while ($arr = mysql_fetch_array($res)) { profile_delete($arr['ID']); } db_res("OPTIMIZE TABLE `Profiles`"); } } if ($db_clean_vkiss > 0) { $res = db_res("DELETE FROM `sys_greetings` WHERE `When` < NOW() - INTERVAL {$db_clean_vkiss} DAY"); if ($res) { $db_clean_vkiss_num = db_affected_rows(); db_res("OPTIMIZE TABLE `sys_greetings`"); } } if ($db_clean_msg > 0) { $res = db_res("DELETE FROM `sys_messages` WHERE `Date` < NOW() - INTERVAL {$db_clean_msg} DAY"); if ($res) { $db_clean_msg_num = db_affected_rows(); db_res("OPTIMIZE TABLE `sys_messages`"); } } //--- Clean sessions ---// bx_import('BxDolSession'); $oSession = BxDolSession::getInstance(); $iSessions = $oSession->oDb->deleteExpired(); // clean expired ip bans bx_import('BxDolAdminIpBlockList'); $oBxDolAdminIpBlockList = new BxDolAdminIpBlockList(); $iIps = $oBxDolAdminIpBlockList->deleteExpired(); // clean old views bx_import('BxDolViews'); $oBxViews = new BxDolViews('', 0); $iDeletedViews = $oBxViews->maintenance(); // clean old votes bx_import('BxDolVoting'); $oBxVotes = new BxDolVoting('', 0); $iDeletedVotes = $oBxVotes->maintenance(); echo "\n- Database cleaning -\n"; echo "Deleted profiles: {$db_clean_profiles_num}\n"; echo "Deleted virtual kisses: {$db_clean_vkiss_num}\n"; echo "Deleted messages: {$db_clean_msg_num}\n"; echo "Deleted sessions: {$iSessions}\n"; echo "Deleted records from ip block list: {$iIps}\n"; echo "Deleted views: {$iDeletedViews}\n"; echo "Deleted votes: {$iDeletedVotes}\n"; }