Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何使用CodeIgniter的LIKE查询?_Mysql_Codeigniter_Sql Like - Fatal编程技术网

Mysql 如何使用CodeIgniter的LIKE查询?

Mysql 如何使用CodeIgniter的LIKE查询?,mysql,codeigniter,sql-like,Mysql,Codeigniter,Sql Like,我想运行如下查询: SELECT * FROM table WHERE field LIKE '%search_term%' 在CI中,如果使用了字段=?,则可以将参数绑定到查询,但这不适用于字段,如“%?%”。从调试输出来看,使用的查询似乎是类似“%”搜索“%”的字段 是否有其他方法在CodeIgniter中进行搜索?您可以使用以下查询: SELECT * FROM table WHERE field LIKE ? 并使用%search%而不是search进行绑定 您应该知道,在MySQL

我想运行如下查询:

SELECT * FROM table WHERE field LIKE '%search_term%'
在CI中,如果使用了
字段=?
,则可以将参数绑定到查询,但这不适用于
字段,如“%?%”
。从调试输出来看,使用的查询似乎是类似“%”搜索“%”的
字段


是否有其他方法在CodeIgniter中进行搜索?

您可以使用以下查询:

SELECT * FROM table WHERE field LIKE ?
并使用
%search%
而不是
search
进行绑定


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

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

这是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%, before表示%columnname,
after意味着columnname%

谢谢,这很有效。这不是我脚本的主要部分,因此速度不是问题。感谢您提供MySQL免费文本参考!对这是一个在like子句中使用字符串的情况的答案。但我在查询Like子句中的where变量时遇到了困难。如果将其定义为%variable\u name%,则它不起作用。我找到了解决办法。这就是我回答的原因。
$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();