Как использовать запрос LIKE с CodeIgniter? - PullRequest
8 голосов
/ 19 сентября 2010

Я хочу выполнить запрос следующим образом:

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

В CI вы можете привязать параметры к запросам, если вы использовали field=?, но это не работает для field LIKE "%?%".Из результатов отладки кажется, что используемый запрос field LIKE "%'search'%".

Есть ли альтернативный способ поиска в CodeIgniter?

Ответы [ 4 ]

17 голосов
/ 19 сентября 2010

Вы можете использовать этот запрос:

SELECT * FROM table WHERE field LIKE ?

И связывайте с %search% вместо search.

Вы должны знать, что этот запрос будет медленным в MySQL. Возможно, вы захотите взглянуть на поиск в свободном тексте (Lucene, Sphinx или встроенные функции MySQL для поиска в свободном тексте).

2 голосов
/ 14 сентября 2013

это активный класс записи для 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;
}

Вы должны попробовать это ... Я думаю, что это поможет вам ... оба означает% columnname%, перед означает% columnname, после означает columnname%

1 голос
/ 20 апреля 2017
$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();
0 голосов
/ 19 сентября 2010

я могу понять, что CI добавляет кавычки, передавая FALSE в качестве третьего параметра при привязке, чтобы предотвратить добавление кавычек CI.

...