Php 全文搜索查询在CodeIgniter中不起作用
我试图在CodeIgniter中运行全文索引搜索 我的搜索功能如下所示:Php 全文搜索查询在CodeIgniter中不起作用,php,codeigniter,Php,Codeigniter,我试图在CodeIgniter中运行全文索引搜索 我的搜索功能如下所示: public function get_searchresult_count($searchresult) { $today_date = date('Y-m-d'); $db_photos = $this->load->database('photos', TRUE); $db_photos->select('*'); $db_photos->from('photo
public function get_searchresult_count($searchresult)
{
$today_date = date('Y-m-d');
$db_photos = $this->load->database('photos', TRUE);
$db_photos->select('*');
$db_photos->from('photos');
$db_photos->where('MATCH (`title`, `description`) AGAINST ("'.$searchresult.'")', NULL);
$db_photos->where('approved', '1');
return $db_photos->count_all_results();
}
我需要返回count_all_results
,因为它需要为结果分页获取一个数字
我无法使其工作,我遇到以下错误:
错误号码:1064
您的SQL语法有错误;检查手册
对应于您的MySQL服务器版本,以便使用正确的语法
第3行“1”附近的“石灰”和批准
从(photos
)中选择COUNT(*)作为numrows
,其中MATCH
(title
),
说明
)对照(“石灰”)和批准
=“1”
有什么想法吗?您需要运行选择查询并返回结果。在“where”子句之后,尝试添加:
$query = $db_photos->get();
return $query->count_all_results();
希望有帮助。您需要将where()
函数的第三个参数设置为false,以防止参数自动转义。否则,将转义match子句中的引号并创建无效查询
从AR手册页面逐字记录
$this->db->where()接受可选的第三个参数。若您将其设置为>FALSE,CodeIgniter将不会尝试使用反勾号保护您的字段或表名
您是否检查过该查询是否在mysql cli或phpmyadmin上工作?在最新的CodeIgniter中,查询没有count\u all\u results()方法
$this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE);