代码之家  ›  专栏  ›  技术社区  ›  DisgruntledGoat

如何使用与codeigner类似的查询?

  •  8
  • DisgruntledGoat  · 技术社区  · 14 年前

    我想运行这样的查询:

    SELECT * FROM table WHERE field LIKE '%search_term%'
    

    在CI中,如果使用 field=? 但这不适用于 field LIKE "%?%" . 从调试输出来看,使用的查询似乎是 field LIKE "%'search'%" .

    在代码点火器中有没有其他的搜索方法?

    4 回复  |  直到 7 年前
        1
  •  17
  •   Mark Byers    14 年前

    您可以使用此查询:

    SELECT * FROM table WHERE field LIKE ?
    

    与…结合 %search% 而不是 search .

    您应该知道,这个查询在MySQL中会很慢。您可能希望查看自由文本搜索(Lucene、Sphinx或MySQL内置的自由文本搜索功能)。

        2
  •  2
  •   Snap Mash    11 年前

    这是代码点火器的活动记录类

    $this->db->select('*');
    $this->db->like('columnname','both');
    $query=$this->db->get("tablesname");
    $result=$query->result_array();
    if(count($result))
    {
    return $result;
    }
    else
    {
    return FALSE;
    }
    

    你应该试试这个……我想它对你有帮助…… 两者都表示%columnname%, before表示%columnname, after表示columnname%

        3
  •  1
  •   dulaj sanjaya    8 年前
    $search_term=$this->input->post('textboxName');
    $search_term="%".$search_term."%";
    $sql="SELECT * FROM table WHERE field LIKE ? ";
    $query=$this->db->query($sql,array($search_term));
    $res=$query->result();
    
        4
  •  0
  •   Sandy    14 年前

    我能理解的是CI添加引号,在绑定时将false作为第三个参数传递,以防止CI添加引号。