前天,昨天都遇到了一个数据库一个表格被删除的问题,第一次遇到的时候,因为在thinkphp里面的log里面没有找到记录,以为是人为的数据库导数据错误。恢复数据就不再理会,第二次出现问题,还是没有找到原因,但是已经排除人为的原因造成的事故了。当第三次出现的时候,我在thinkphp的log找到了删除日志。
导致这次bug出现的原因是:一个具有删除任务的函数,他通过I()函数来接受post过来的参数,但没有post任何值就访问这个函数,则默认为0。
数据库中,有一个字段为父任务ID,默认值为0。因为联动操作导致任务被删除。
解决方案:设置权限控制和任务检测。