Php where()在codeigniter数据库中不工作

Php where()在codeigniter数据库中不工作,php,codeigniter,Php,Codeigniter,我编写了这段代码,用于在表中搜索show=1的帖子中的字符串。 但当我在“show”处运行这段代码时,1不受影响,从数据库返回show=0的行,这是什么问题 public function json_search($str) { $out['Threadt'] = $this->db ->select('id') ->from('posts') ->like('title',$str)

我编写了这段代码,用于在表中搜索show=1的帖子中的字符串。 但当我在“show”处运行这段代码时,1不受影响,从数据库返回show=0的行,这是什么问题

    public function json_search($str)
    {
        $out['Threadt'] = $this->db
        ->select('id')
        ->from('posts')
        ->like('title',$str)
        ->or_like('story',$str)
        ->or_like('description',$str)
        ->or_like('full-story',$str)
        ->where('date <',time())
        ->where('show',1)
        ->get()
    ->result_array();
     }

你应该试试这个,这个应该有用:

function json_search($str)
{
    $where  = "( story like '%".$str."%' OR title like '%".$str."%' OR description like '%".$str."%' OR full-story like '%".$str."%' )";
    $out['Threadt'] = $this->db
    ->select('id')
    ->from('posts')
    /*->like('title',$str)
    ->or_like('story',$str)
    ->or_like('description',$str)
    ->or_like('full-story',$str)*/
    ->where( $where, false, false )
    ->where('date <',time())
    ->where('show',1)
    ->get()
    ->result_array();
 }

请参见上面的注释部分,当您像这样使用它时,您是在附加OR子句,这会干扰show子句。

尝试用引号包装的show,“1”我尝试使用“1”,但不起作用:乍一看,我觉得一切正常。如果运行$this->db->last\u查询,查询是否正常?