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

发布于 2017-01-22 16:22:10 字数 36 浏览 1260 评论 2

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

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

评论(2

归属感 2017-07-27 16:56:09

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

<?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 21:07:53

cdb_threads 数据表里。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文