帝国cms生成文档报错:Table 'diguocms.***_ecms_news_data_' doesn't exist

最近帝国cms的文章比较多了,因为正在用这个做网站,因此遇到的问题就会随时记录下来,今天在更新生成文章的时候出现了如下报错:

Table 'diguocms.***_ecms_news_data_' doesn't exist
select keyid,dokey,newstempid,closepl,infotags,writer,befrom,newstext from ***_ecms_news_data_ where id='668' limit 1

查看文档后台,确实没id668的文章,news数据表中也没有,经查这是因为索引表中有id为668的文档造成的,查看了下phome_ecms_news_index确实有这篇文档。同时发现两者数据不一致,清除后就正常了。

phpmyadmin打开帝国的数据库diguocms,sql执行以下语句:

delete from `phome_ecms_news_index` where id not in(select id from phome_ecms_news)

执行后,两者数据一致了,再次更新,无错。

友情提醒:进行数据库操作前请做好数据库备份

一般正常情况发文章是不可能出现这种错误的,出现这种问题可能是进行数据转换、采集、导入等造成的两表不一致。