因为采集规则写的不完善,整站采集偶尔会有那么几条脏数据,导致程序报错。
昨晚挂了个采集任务,今天发现翻页,有几页不显示数据,于是就修改index.php开启debug模式。
找到错误的文章,显示tag报错,phpmyadmin看了下“well_website_thread”表下该文章的tag数据,发现报错的数据缺少"}"。
于是键入sql命令:
SELECT * FROM `well_website_thread` WHERE `fid`=24 AND `tag` NOT REGEXP '}'
fid是分类ID,该命令会查找tag不包含"}"的数据,发现106条,直接删除。
删完报错更厉害了,排查发现表"well_website_thread_tid"还有相关数据。
于是键入sql命令:
SELECT * FROM `well_website_thread_tid` WHERE `tid` not in (select `tid` from `well_website_thread`);
tid是文章id,这条命令意思就是 对比"well_website_thread_tid"和"well_website_thread"两个表,找到"well_website_thread_tid"表多出来的脏数据,发现106条,数据匹配,直接删除。
问题解决。
以上过程仅供参考,操作前请备份数据。
返回