Php 代码点火器在何处和或一起

Php 代码点火器在何处和或一起,php,database,codeigniter,combinations,where-clause,Php,Database,Codeigniter,Combinations,Where Clause,我正试图通过代码将Where和OR合并到Codeigniter中 $this->db->where("id",1); $this->db->where("status","live")->or_where("status","dead"); 显示的结果为查询结果 其中id=1,status='live'或status='dead' 而我需要此查询的结果。 其中id=1和(status='live'或status='dead') 注意:请不要给出从where函数作为

我正试图通过代码将Where和OR合并到Codeigniter中

$this->db->where("id",1);
$this->db->where("status","live")->or_where("status","dead");
显示的结果为查询结果
其中id=1,status='live'或status='dead'

而我需要此查询的结果。
其中id=1和(status='live'或status='dead')


注意:请不要给出从where函数作为参数传递的字符串的解决方案。这不符合我的准则。我只是简化了上面的问题。

刚刚找到了解决方案,如果它能帮助一些人的话

$this->db->where("id",1)->where("(status='live' OR status='dead')");
您可以像这样使用where_in()

$status_array = array('live','dead');
$this->db->where("id",1);
$this->db->where_in('status', $status_array);
您只需添加->组开始()和->组结束()


签出文档。有没有类似的变量呢?添加$this->db->where(“id”,1)->where((status=$variable或status=$variable));可能是一个巨大的错误,会为SQL注入打开一个大门。是的,@TheNavigat这是一个巨大的错误,会为SQL注入打开一个大门。
group\u start()
group\u end()
仅在CI 3.x中可用,在2.x中不可用。如果您在2.x中尝试,您将得到一个错误
调用未定义的方法CI\u DB\u mysql\u driver::group\u start()
(在这里添加是为了将来的搜索好处)
$this->db->where("id",1);
$this->db->where("status","live")
->group_start()
->or_where("status","dead")
->group_end();