zoukankan      html  css  js  c++  java
  • discuz 删除指定条件的资讯

    <?php
    
    /*
     * 删除指定条件的资讯
     * 此脚本使用时需谨慎使用,使用前备份门户表
     * pre_portal_category pre_portal_article_title pre_portal_article_content pre_portal_article_count pre_portal_attachment
     * 
     */
    define('IN_DISCUZ', true);
    define('CHARSET', 'utf-8');
    define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -6)) . '/';
    
    require_once(DISCUZ_ROOT . 'config/config_global.php');
    require_once(DISCUZ_ROOT . 'config/config_remake_imgsize.php');
    require_once(DISCUZ_ROOT . 'source/class/class_upload.php');
    require_once(DISCUZ_ROOT . 'source/class/class_image.php');
    require_once(DISCUZ_ROOT . 'source/class/class_image_ext.php');
    require_once(DISCUZ_ROOT . 'source/function/function_core.php');
    require_once(DISCUZ_ROOT . '_TOOLS/function/function_getdata_common.php');
    require_once(DISCUZ_ROOT . '_CLASS/_COMMON_CLASS/Mysql.class.php');
    
    $dbconfig = $_config['db']['1'];
    $_G['tablepre'] = $dbconfig['tablepre'];
    $mysql = new mysql($dbconfig['dbhost'], $dbconfig['dbuser'], $dbconfig['dbpw'], $dbconfig['dbname'], $dbconfig['dbcharset'], $dbconfig['pconnect']);
    $_G['setting'] = unserialize($mysql->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". "
    ";
            $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()) . ")" . "
    ";
        @fwrite($fp, $fileadd);
        @fclose($fp);
    
        $showprogress && showprogress("$i/$circletimes articles has deleted");
    }
  • 相关阅读:
    wince串口打印信息的屏蔽与打开
    2440 6.0BSP 移植过程之OAL
    2440 6.0BSP移植过程之电池驱动
    2440 6.0BSP移植过程之SD卡驱动
    如何在wince6.0 模拟器上跑以前编译好的EVC MFC程序
    2440 休眠唤醒的实现过程(作者:wogoyixikexie@gliet)
    CETK的使用(USB连接方式)
    如何扩展ARM内存(OEMGetExtensionDRAM和pNKEnumExtensionDRAM函数可以解决问题)
    ZLG7290(wince下)驱动之不停执行同一动作的解决办法(作者:wogoyixikexie@gliet)
    2440 中断优先级问题(作者wogoyixikexie@gliet)
  • 原文地址:https://www.cnblogs.com/bandbandme/p/3581791.html
Copyright © 2011-2022 走看看