MySQL错误1210:AGAINST的参数不正确

时间:2015-05-27 16:13:14

标签: php mysql

我正在更新之前管理员创建的网站。其中大部分是过时的PHP代码,但是有太多的变化,所以我正在使用我所拥有的。

我正在尝试按如下方式运行搜索查询;

$term = trim($_REQUEST['term']);
$searchterm = mysql_real_escape_string($term, $link); //link to db

$sql = "SELECT DISTINCT party_id 
FROM vw_ft_search WHERE 
MATCH (party_name) 
AGAINST ('+$searchterm' IN BOOLEAN MODE)";

这总是会引发以下错误;

  

MySQL错误1210:AGAINST的参数不正确

我已阅读说明here,建议使用文字字符串(我认为我是?)。当我回显$searchterm时,它会显示正确的搜索词(在这种情况下为'Charles')。

我还尝试使用如下输入的手动字符串运行查询,但结果相同;

$sql = "SELECT DISTINCT party_id 
FROM vw_ft_search WHERE 
MATCH (party_name) 
AGAINST ('%Charles%' IN BOOLEAN MODE)";

它与查询,视图,变量有关吗?

任何方向都表示赞赏。 php / mysql的新手。

1 个答案:

答案 0 :(得分:2)

$term = trim($_REQUEST['term']);
$searchterm = mysql_real_escape_string($term, $link); //link to db

如果您还希望与*Charlesk等匹配,请添加Charlesd

$searchterm = $searchterm.'*';
$sql = "SELECT DISTINCT party_id 
FROM vw_ft_search WHERE 
MATCH (party_name) 
AGAINST ('$searchterm' IN BOOLEAN MODE)";

并且要注意可以找到的停用词here。匹配停用词不会返回任何内容。