Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] 深入研究"没有找到帖子"这个长期没有解决问题(已搜索论坛和百度)

[复制链接]
futada 发表于 2017-8-12 11:59:20 | 显示全部楼层 |阅读模式
"没有找到帖子" 这个问题,终于我也碰到了。但是我的和别人以前的帖子很大不同:
1、别人帖子都是在升级后、搬家后出现的,我的是运行好好的出现的。
2、别人是大面积的"没有找到帖子",我只偶然出现。
3、别人可能是网速引起,我是本地127.0.0.1测试,不存在网速问题。

症状:发帖后,在列表能看到帖子,点击则显示"没有找到帖子"。

我到数据库里检查,发现:
1、在thread表里,这个帖子是存在的,比如说 tid=111,记录正常。
2、在post表里(post没分表),这个tid是不存在的。我不但按顺序浏览,并且用sql查询,都确定是不存在的。
3、奇怪的是post表的自增字段pid,少了一条,浏览前后记录,就是少了这一条tid=111,前面的110和后面的112都存在。

以上说明,post表里本来是有这一条tid记录的,它留下了一个自增值的记录,(该帖只有主贴,没有跟帖,所以就一条),现在不知道怎么消失了。
回收站里面也没有,再说帖子列表里还在显示,只是点击后在post表里找不到了对应的,所以也不应该在回收站里。

这台电脑就我一个人本地调试使用,帖子也是我本地发的测试帖,之前之后发的帖子都是好的,就是偶然点这个出现"没有找到帖子" 觉得好奇怪。如果删除,thread表应该和post表同步删除掉的啊,如果在,两个都应该一起在啊。

请问各位版主大大和各位高手大大,出现这种情况是什么原因呢。版本是x3.3 utf8。谢谢!!!




我心枫叶 发表于 2017-8-12 12:13:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| futada 发表于 2017-8-12 12:21:00 | 显示全部楼层
我心枫叶 发表于 2017-8-12 12:13
直接给升级到X3.4试试看

3.4是去除云平台的,这个问题和云平台没有关系啊。另外我是本地调试,没有安装任何插件,也不是防水墙的事情。
回复

使用道具 举报

我心枫叶 发表于 2017-8-12 13:04:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| futada 发表于 2017-8-12 13:42:57 | 显示全部楼层
我心枫叶 发表于 2017-8-12 13:04
既然搞了许久没查到原因。何不重装或者升级,试试呢?

多谢枫叶大大指点!
我本来就是在本地调试测试啊,已经随手重装N回了。由于不是在线上,所以不着急的,等找出原因。我想把这个问题的原因找出来,彻底解决掉,这样以后上线以后就不用再担心这个问题了。
新版本3.4,现在官方自己还没有用,而且安装文件的下载地址也不是官方自己服务器的,先等等在说。等官方自己的服务器上有下载了,我再去看看3.4,再说3.4的功能变化也不是我急需的。不急升级。
回复

使用道具 举报

民审大大 发表于 2017-8-13 01:29:55 | 显示全部楼层
数据库不稳定或者某些异常情况,导致数据插入post表失败了
回复

使用道具 举报

 楼主| futada 发表于 2017-8-13 14:00:23 | 显示全部楼层
民审大大 发表于 2017-8-13 01:29
数据库不稳定或者某些异常情况,导致数据插入post表失败了

感谢民审大大指点!现在是post表里恰好少了这一条tid记录,而空白的自增pid正好记录了这种情况。我想请问一下,post表里已经响应了插入这一条记录,于是pid已经自增了一个空的,现在却查不到tid。导致这种情况,究竟是以下两种的哪一种呢:
1、虽然插入动作失败,但还是可以在post表中留下一条空白的自增记录占位了?
2、这条记录实际上当时已经有了,可又被某处意外delete掉了?
究竟是以上哪一种情况呢,渴盼大大指点,我这几天看sql资料头都晕了,谢谢您!!!
回复

使用道具 举报

民审大大 发表于 2017-8-13 14:22:32 | 显示全部楼层
pre_forum_post 表不记录pid自增键,这个是在 pre_forum_post_tableid 进行自增的
发帖时,先在主题表 pre_forum_thread 插入记录,再在  pre_forum_post_tableid  创建 pid,然后在 pre_forum_post 写入帖子具体内容,你的最后一步执行挂了
回复

使用道具 举报

 楼主| futada 发表于 2017-8-13 16:56:46 | 显示全部楼层
民审大大 发表于 2017-8-13 14:22
pre_forum_post 表不记录pid自增键,这个是在 pre_forum_post_tableid 进行自增的
发帖时,先在主题表 pre ...

民审大大你真的神了!我到数据库一看,果然如此!神人!
现在发现:
1、_forum_thread 里面有一个正常的tid=1000
2、_forum_post_tableid 根据前后相邻的可以知道这个tid=1000的pid应是5000,果然查到此记录
3、_forum_post 找到了上下两条相邻的记录:
(a)tid=999 pid=4999 这是前一条
(b)tid=1001 pid=5001 这是后一条
这两条a、b是post表里连在一起的两条记录。可以看出,缺少的就是中间的一条:tid=1000 pid=5000。

根据以上找到的结果,您的意思是不是说,出现此问题,不是post表里的tid=1000的记录被意外删了,而是根本就没加进去,在第三步挂了。
那么我之前的推断pid是自增的假设是错的,pid是根据前两步结果写入的,它不是自增值,既然不是自增的,那么我前面推断曾经存在过一条post表记录又被意外删了的假设就也是错误的。

结论:那么这条tid=1000 pid=5000的post表记录就根本没存在过(导致的原因暂且不论)。请教民审大大,我这样理解对吗?
充满感激!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-28 11:41 , Processed in 0.024257 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表