emlog6.0新版的一个不能是说BUG的BUG

摘要
阿里云ECS云服务器
emlog6.0出来后,下载了试试,在升级版本的时候,同步了下之前一直使用的插件。
后来发现tag报错,,
报错文件:/include/model/tag_model.php
报错位置:方法getBlogIdsFromTagId,大约333行

BUG分析:
    可能是我升级的方式不对或者升级不完全,报错的时候查看原来的文章,tag标签都是空的。。
问题就是出现在这里,不知道为什么文章表的tag都空了,当时也是迷迷糊糊的不在状态。。再去看tag表,关联文章ID的字段内容有空ID,内容举例如:,2,3
    
    再看方法getBlogIdsFromTagId,这个是根据tagID或者关联的文章ID,方法没问题,最后return的时候出问题了,两个if判断用来判断是否有数据并且gid不是空,然后用“,”分割字符串返回array

    现在问题出来了,因为我的tag表的gid字段有空ID,分割的时候就是有空元素。tag获取文章列表那里(具体哪个方法忘记了。。)在调用此方法并且组装sql的时候,in用法的语句就错误了。。
    错误用法如:in(,2,3)

BUG修复:
    OK了,现在整个流程清楚了,问题源找到了,修复方法很简单,只需要在getBlogIdsFromTagId方法return的时候过滤一下数组的空元素即可
    参考修复方案:return array_filter($blogs);

目前评论:0 条