最近接到一些站长的反馈,说论坛上传附件,到100%的时候自己取消上传了。经查是附件索引表pre_forum_p_w_upload表的aid字段自增值出现了问题,导致程序逻辑返回的aid值实际为一个MySQL 1062 报错:
来自网页的消息
—————————
10.144.49.99 – Database Error

Discuz! Database Error

(1062) Duplicate entry ’107697′ for key 1
INSERT INTO forum_p_w_upload SET `tid`=’0′ , `pid`=’0′ , `uid`=’1′ , `tableid`=’127′

PHP Debug


—————————
确定
我们看到实际上是一段html代码(其实如果站长关注后台的运行记录,也会有这个报错的,只不过我是先排查代码,才发现的),也就是Discuz! X的MySQL报错信息页面,这里最重要的信息就是MySQL的报错了,Discuz! Database Erro (1062) Duplicate entry ’107697′ for key 1 INSERT INTO forum_p_w_upload SET `tid`=’0′ , `pid`=’0′ , `uid`=’1′ , `tableid`=’127′ 。知道了aid 1062 报错,即插入了重复的值,那么就好办了,去pre_forum_p_w_upload 修改自增值就可以了,自增值修改成什么呢,当然要看一下aid当前的最大值多少,然后加1就是要修改的自增值了。可以在MySQL命令行执行:alter table pre_forum_p_w_upload auto_increment = aid最大值+1 ,如果有phpMyAdmin的话,更好操作了了,这里就不多说了。至于为什么自增值会出问题,还没详细研究,不过收集的几个情况包括重启服务器,数据库迁移等操作。


源于青互联虚拟主机博客http://www.qing.es

转载于:https://blog.51cto.com/xinxin8/1430438

你可能感兴趣的:(Discuz! X论坛上传附件到100%自动取消上传的原因及解决方案)