Mysql 其中,如果数组为空,则编码点火器错误中的_

Mysql 其中,如果数组为空,则编码点火器错误中的_,mysql,activerecord,codeigniter-2,Mysql,Activerecord,Codeigniter 2,我用的是CodeIgniter2。我正在尝试使用活动记录进行mysql查询。问题是,当传递到中的\u为空的数组时,我出现了错误。我在问,如果数组为空,是否有任何方法可以忽略where_in条件 这是一个条件示例: $this->db->where_in('p.brand_id', $brands); 这就是我得到的错误: 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在()中使用的正确语法(near')和pbrand\u id) 如果数组为空,就不要调用whe

我用的是CodeIgniter2。我正在尝试使用活动记录进行mysql查询。问题是,当传递到中的\u为空的数组时,我出现了错误。我在问,如果数组为空,是否有任何方法可以忽略
where_in
条件

这是一个条件示例:

$this->db->where_in('p.brand_id', $brands);
这就是我得到的错误:

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在()中使用的正确语法(near')和
p
brand\u id


如果数组为空,就不要调用
where_in()

if(is_array($brands) && count($brands) > 0){
    $this->db->where_in('p.brand_id', $brands);
}

我更改了活动记录(
DB\u Active\u rec.php
class),并添加了此代码以忽略
where\u in
条件(如果值数组为空)。所以现在对我来说很有效。 我添加的代码介于//@begin和//@end之间

 /**
 * Where_in
 *
 * Called by where_in, where_in_or, where_not_in, where_not_in_or
 *
 * @param   string  The field to search
 * @param   array   The values searched on
 * @param   boolean If the statement would be IN or NOT IN
 * @param   string
 * @return  object
 */
protected function _where_in($key = NULL, $values = NULL, $not = FALSE, $type = 'AND ')
{
    if ($key === NULL OR $values === NULL)
    {
        return;
    }

    //@begin
    // Ignore where_in condition if values array's empty
    if(is_array($values) && empty($values))
    {
        return $this;
    }
            //@end

           // More method stuff

不要害怕,只要拿出你的疑问dude@echo_Me例如他是<代码>$this->db->where_in('p.brand_id',$brands)正在将
中的
追加到查询中。问题很清楚。你确定$brands是一个数组吗?如果不是,它将失败。。。检查这个@RocketHazmat问题就在那行之前。这就是为什么我让他展示code@echo_Me这是一个包含
多连接的大型查询
,因此,我向您展示我想要的@我百分之百肯定。