$ this-> db-> where()第三个参数不转义只查询此参数或生成所有查询?

时间:2017-05-16 03:10:24

标签: php mysql codeigniter

我对codeigniter文档here

上的此声明有疑问
$where = "name='Joe' AND status='boss' OR status='active'";
$this->db->where($where);
     

$this->db->where()接受可选的第三个参数。如果你设置   它为FALSE,CodeIgniter不会试图保护你的领域或表   带反叛的名字。


它在第三个参数上表示错误,Codeigniter不会尝试使用反引号来保护我的字段或表名 这意味着它不会保护我生成的所有查询,或只是$this->db->where(),其中第三个参数为假 例如:

$this->db->where('username',$username);
$this->db->where('id is NOT NULL',null,FALSE);
$this->db->get('users')->result_array();

以上示例中使用的查询是否安全?
它是否会影响第一个$this->db->where('username',$username)因为第三个参数的false为false并影响所有查询或其安全,因为它只影响id $this->db->where('id is NOT NULL',null,FALSE);
我很感谢你们/女孩们能否提供生成的查询的一个例子,因为我现在知道这个Thx的错误输入!

1 个答案:

答案 0 :(得分:0)

不,它不影响整个查询,只影响您使用参数的where()调用...否则它不会是参数。

是的,除非你把用户输入放在条件中,否则这样做是安全的。