最近升级了Discuz的论坛和Supesite。
之后,一直随机出现类似下面这样的错误信息
Time: 2009-1-5 2:16am
Script: /admincp.php SQL: SELECT i.fid, ii.[Table]pushsetting FROM `discuz`.`[Table]forums` i, `discuz`.`[Table]forumfields` ii WHERE i.fid=ii.fid AND i.fup<>'0' ORDER BY i.[Table]updateline ASC
Error: Unknown column 'i.[Table]updateline' in 'order clause'
Errno.: 1054
很奇怪,有时输入网址,直接就是这样的错误,刷新一下就又正常打开网页了,有时没有问题,直接可以打开。而且登入管理后台后,有时都会出现这样的问题,通常也是刷新后就可以了。
搜索了一下,有很多网站都出过类似的问题,而官方也有一个解释,就是程序同数据库不一致,需要重新上传程序文件。
我重新从官方网站下载了程序,照做一遍,没有用,仍然是随机出现这样的错误。
而且从数据库看updateline这个字段是存在的。也排除了升级时数据库更新不完整的可能。
那么又是什么可能呢?
为了解决问题,需要重建一个环境来模拟,但我不需要,之前我有一个测试平台,基本上是同这个平台是一样的。
刚才我比较了两个平台的cdb_forums表。
发现有两个字段名称不一致。应该是supe_updateline,现在是updateline,另一个是supe_allowpost,而现在是allowpost。
我猜测是这两个字段名称在升级时出错了,接着就在用mysqladmin,直接修改了字段名。
现在看来,是没有问题了。
如果你也有遇到这样的问题,也许可以帮到你。