Codeigniter WHERE和OR在一起

Was*_* A. 1 php database combinations codeigniter where-clause

我试图通过代码在Codeigniter中结合Where和OR.

$this->db->where("id",1);
$this->db->where("status","live")->or_where("status","dead");
Run Code Online (Sandbox Code Playgroud)

出现的结果是查询,
where id=1 and status='live' OR status='dead'
而我需要此查询的结果.
where id=1 and (status='live' OR status='dead');

注意:请不要给出作为参数传递的字符串的解决方案.那不适合我的代码.我刚刚简化了上面的问题.

Pra*_*inS 9

你可以像这样使用where_in()

$status_array = array('live','dead');
$this->db->where("id",1);
$this->db->where_in('status', $status_array);
Run Code Online (Sandbox Code Playgroud)


Was*_* A. 8

刚刚找到解决方案,如果它可以帮助一些人.

$this->db->where("id",1)->where("(status='live' OR status='dead')");
Run Code Online (Sandbox Code Playgroud)

  • 相反,有类似的变量吗?添加$ this-> db-> where("id",1) - > where("(status = $ variable OR status = $ variable)"); 可能是一个巨大的错误,将为SQL注入打开一扇门. (3认同)