- 普通 - 未处理
[i=s] 本帖最后由 xiaochong0302 于 2012-2-23 20:13 编辑 [/i]请看如下的删除操作:
1. M()->delete(1); //安全
2. M()->delete(); //安全
3. M()->where(array('id'=>1))->delete(); //安全
4. M()->where()->delete(); //坑爹,数据全部消失
你也许会有疑问,一般也不会写出像4这样的代码来,下面的代码等价于4:
$where = array(); || $where = null; || $where = '';
M()->where($where)->delete();
比方说书写的时候把$where 写成了$whree就会造成这个$where = null;的情况出现。
ThinkPHP可能解析where条件的时候没有做充足的过滤,回头看看源码。
PS: 这个问题不解决,每个写代码的人都有可能成为码路杀手。
