开发者

How to use a LIKE query with CodeIgniter?

I want to run a query like this:

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

In CI you can bind parameters to queries, if you used field=? but this does not work for field LIKE "%?开发者_StackOverflow%". From debugging output it seems the query used is field LIKE "%'search'%".

Is there an alternative way to do searching in CodeIgniter?


You can use this query:

SELECT * FROM table WHERE field LIKE ?

And bind with %search% instead of search.

You should be aware that this query will be slow in MySQL. You might want to look at free-text search instead (Lucene, Sphinx, or MySQL's built-in free-text search functions).


this is active record class for codeigniter

$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;
}

You should try this..I think its help you.. both means %columnname%, before means %columnname, after means columnname%


$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();


what i can understand CI is adding quotes, pass FALSE as third parameter while binding to prevent CI adding quotes.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜