左右不逢缘 发表于 2023-5-7 07:42:31

求教大侠们:PW8.7转dz3.0在最后统计用户精华帖数这步报错

服务器软件      Apache/2.2.19 (Win32) PHP/5.2.17
服务器 MySQL 版本      5.0.90-community-nt

PW8.7转dz3.0,基本还算顺利,除了原来新鲜事的回复不能导入,其他基本都成功了,在最后统计用户精华帖数这步报错(在转换程序\cache\lock目录下,有个converterror.php,记录了所有转换错误,正在转的小伙伴们可以去查看一下。)报错代码如下:
<?PHP exit;?>      2023-05-04 12:10:52      /tox3/index.php?mod=stats&do=memberdigests&op=detail&current=6000&pertask=3000      <b>XConvert info</b>: MySQL Query Error<br /> <br /> <b>Time</b>: 2023-5-4 12:10pm<br /> <b>SQL</b>: UPDATE x3gbk.common_member_count SET digestposts=digestposts+'6' WHERE uid IN (,17586,24053,6363)<br /> <b>Error</b>: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '17586,24053,6363)' at line 1<br /> <b>Errormsg.</b>: <br /> <b>Errno.</b>: 1064<br />


Crystαl 发表于 2023-5-7 07:43:23

我查找了一下,代码文件在安装目录\source\module下面的stats.inc.php的第130行里,不知道是不是代码有问题,麻烦大侠们给指点一下!
//统计用户精华帖数                        $membersarray = $postsarray = array();                        if($xc->config['db']['discuz_type'] == 'x') {                              $xc->db['discuz']->query("UPDATE {$discuz_tablepre}common_member_count SET digestposts=0", 'UNBUFFERED');                        }                                                $maxtid = $xc->db['discuz']->result($xc->db['discuz']->query("SELECT max(tid) FROM {$discuz_tablepre}".($xc->config['db']['discuz_type'] == 'x' ? "forum_thread": "threads")." WHERE digest<>'0' AND displayorder>='0'"), 0);                        if($current <= $maxtid) {                              $processed = 1;                        }                        $query = $xc->db['discuz']->query("SELECT authorid FROM {$discuz_tablepre}".($xc->config['db']['discuz_type'] == 'x' ? "forum_thread": "threads")." WHERE digest<>'0' AND displayorder>='0' AND tid >= $current AND tid < $current + $pertask");                        while($thread = $xc->db['discuz']->fetch_array($query)) {                              $thread['authorid'] && $membersarray[$thread['authorid']]++;                              $processed = 1;                        }                                                $extra_str = '';                        foreach($membersarray as $uid => $posts) {                              $postsarray[$posts] .= $extra_str.$uid;                              $extra_str = ',';                        }                        unset($membersarray);                        foreach($postsarray as $posts => $uids) {                              $xc->db['discuz']->query("UPDATE {$discuz_tablepre}".($xc->config['db']['discuz_type'] == 'x' ? "common_member_count": "members")." SET digestposts=digestposts+'$posts' WHERE uid IN ($uids)", 'UNBUFFERED');                        }                        if($processed) {                              $show_message =$xc->language['stats_donig'].' '.$xc->language['stats_from'].$current.$xc->language['stats_to'].$next.$xc->language['stats_rowdata'];                              $show_message .= "<div id="checkflag" name="checkflag" style="width: 0px;height: 0px;overflow:auto;">ok</div>";                              $show_url = 'index.php?mod=stats&do='.$do.'&op=detail&current='.$next.'&pertask='.$pertask;                              $show_message .= "<p><a href="".$show_url."">".$xc->language['message_redirect']."</a></p><div align="right">[<a href="index.php?mod=stats&do=".$do."&op=detail&isstop=1style="color:red">".$xc->language['message_stop']."</a>]</div><script>setTimeout("redirect('".$show_url."');", 1000);</script>";                        } else {                              $show_message = $xc->language['convert_ready'].$xc->language['stats_memberdigests_finish'].$xc->language['convert_date'].'......<br>';                              $show_message .= "<div id="checkflag" name="checkflag" style="width: 0px;height: 0px;overflow:auto;">ok</div>";                              $show_url = 'index.php?mod=stats&do=forumposts&op=detail';                              $show_message .= "<script>setTimeout("redirect('".$show_url."');", 1000);</script>";                        }                        file_put_contents(XCONVERT_ROOT.'./cache/lock/progress_stats.txt', $show_url);                } elseif($do == 'forumposts') {                        //统计版块的主题数、回复数、最后发表主题
页: [1]
查看完整版本: 求教大侠们:PW8.7转dz3.0在最后统计用户精华帖数这步报错

创宇盾启航版免费网站防御网站加速服务