Discuz! X-问discuz发主题或帖子的处理过程,最后在哪些数据库表中添加了数据?

Discuz! X-问discuz发主题或帖子的处理过程,最后在哪些数据库表中添加了数据?

晚风撩人 发布于 2017-01-22 字数 59 浏览 1193 回复 2

现在需要从备份数据库中恢复discuz已删除帖子及其回复。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

归属感 2017-07-27 2 楼

这是一个我一直在用的发帖程序,和你修复的大致逻辑雷同,你可以参考一下:

<?php
define('APPTYPEID', 4);
define('CURSCRIPT', 'portal');

require './source/class/class_core.php';
$discuz = & discuz_core::instance();
$discuz->init();

$title="发帖标题"; //标题
$fid=52; //版块
$uid=1; //发帖人ID
$uname='admin'; //发帖人
$time=time(); //发帖时间
$content="这当然是[B]asd[/B]内容啦rn从前....结束rn"; //内容
$ip='127.0.0.1'; //IP
$views=rand(0,100); //浏览次数
$htmlon=1; // 是否支持HTML 1是支持. 要去后台给板块开启支持HTML

$array=array('fid'=>$fid,'posttableid'=>0,'typeid'=>0,'sortid'=>0,'readperm'=>0,'price'=>0,'author'=>$uname,'authorid'=>$uid,'subject'=>$title,'dateline'=>$time,'lastpost'=>$time,'lastposter'=>$uname,'views'=>$views,'replies'=>0,'displayorder'=>0,'highlight'=>0,'digest'=>0,'rate'=>0,'special'=>0,'attachment'=>0,'moderated'=>0,'closed'=>0,'stickreply'=>0,'recommends'=>0,'recommend_add'=>0,'recommend_sub'=>0,'heats'=>0,'status'=>32,'isgroup'=>0,'favtimes'=>0,'sharetimes'=>0,'stamp'=>-1,'icon'=>-1,'pushedaid'=>0,'cover'=>0,'replycredit'=>0);
$tid=DB::insert('forum_thread', $array, TRUE);

$array=array('fid'=>$fid,'tid'=>$tid,'first'=>1,'author'=>$uname,'authorid'=>$uid,'subject'=>$title,'dateline'=>$time,'message'=>"$content",'useip'=>$ip,'invisible'=>0,'anonymous'=>0,'usesig'=>1,'htmlon'=>$htmlon,'bbcodeoff'=>-1,'smileyoff'=>-1,'parseurloff'=>0,'attachment'=>0,'rate'=>0,'ratetimes'=>0,'status'=>0,'tags'=>'','comment'=>0,'replycredit'=>0);
$pid=DB::insert('forum_post', $array, TRUE);

$array=array('pid'=>$pid);
DB::insert('forum_post_tableid', $array);

$num=DB::fetch(DB::query('SELECT threads,posts,todayposts FROM '.DB::table('forum_forum')." WHERE fid='$fid'"));
$array=array('threads'=>$num[threads]+1,'posts'=>$num[posts]+1,'lastpost'=>"$pid $title $time $uname",'todayposts'=>$num[todayposts]+1);
DB::update('forum_forum', $array,"fid='$fid'");

DB::query("UPDATE ".DB::table('common_member_count')." SET posts=posts+1 WHERE uid='$uid'", 'UNBUFFERED');
DB::query("UPDATE ".DB::table('common_member_status')." SET lastip='$ip',lastvisit='$time',lastactivity='$time',lastpost="$pid $title $time $uname" WHERE uid='$uid'", 'UNBUFFERED');

echo 'OK'.$pid;

最后补充一下,这个是X2的发帖程序,X2.5的逻辑稍微有点,变化,就是帖子表如果分表了,需要先插入分表分配表中获取id,这个你要需要留言我再补充

晚风撩人 2017-02-14 1 楼

cdb_threads 数据表里。