resultOne("SELECT data FROM " . $_G['tablepre'] . "common_syscache WHERE cname='setting'"));$logfilename = DISCUZ_ROOT . '/data/log/deleteArticles' . date('Ymd') . '.txt'; //日志文件$showprogress = isset($argv[1]) && trim($argv[1]) == '1' ? true : 1; //是否显示过程信息$where = ' WHERE uid=9832 and aid>1815'; // uid=10336 and aid>1815 just for yuanjun Editor$totalnum = $mysql->resultOne("SELECT count(*) FROM pre_portal_article_title $where");echo 'Total: ' . $totalnum;//exit();$pertask = 50; //每次从数据库中查询多少条数据,分批处理$circletimes = ceil($totalnum / $pertask);if ($totalnum < $pertask) { $pertask = $totalnum;}for ($i = 0; $i < $circletimes; $i++) { $aidsArr = $mysql->fetchAll("SELECT aid, catid FROM pre_portal_article_title $where LIMIT $pertask"); $aids = array(); $catids = array(); foreach ($aidsArr as $arr) { $aids[] = $arr['aid']; $catids[$arr['catid']] = isset($catids[$arr['catid']]) ? $catids[$arr['catid']] + 1 : 1; } $idwhere = " WHERE aid in (" . implode(',', $aids) . ")"; //update pre_portal_category $catana = ''; foreach ($catids as $catid => $num) { $catana .= " catid: $catid => num:$num". "\n"; $mysql->increase($_G['tablepre'] . 'portal_category', array('articles' => -$num), array('catid' => $catid)); } //delete article from pre_portal_article_content; $mysql->query("DELETE FROM pre_portal_article_count $idwhere"); //delete article from pre_portal_article_content; $mysql->query("DELETE FROM pre_portal_article_content $idwhere"); //delete article from pre_portal_article_title $mysql->query("DELETE FROM pre_portal_article_title $idwhere"); // delete article from pre_portal_attachment $attaches = $mysql->fetchAll("SELECT * FROM pre_portal_attachment $idwhere"); if (!empty($attaches)) { foreach ($attaches as $attach) { $imgurl = $_G['setting']['attachdir'] . 'portal/' . $attach['attachment']; @unlink($imgurl); } } //增加日志 $fp = @fopen($logfilename, 'a+'); $fileadd = $catana. "Deleted articles aid is " . implode(',', $aids) . "(" . date("Y-m-d H:i:s", time()) . ")" . "\n"; @fwrite($fp, $fileadd); @fclose($fp); $showprogress && showprogress("$i/$circletimes articles has deleted");}