Php 对()使用MATCH()时出现MYSQL语法错误
我试图查询一个数据库,以在单独的表中的两列之间找到相关结果,为此,我使用以下代码:Php 对()使用MATCH()时出现MYSQL语法错误,php,mysql,match-against,Php,Mysql,Match Against,我试图查询一个数据库,以在单独的表中的两列之间找到相关结果,为此,我使用以下代码: $query = "SELECT * FROM $table WHERE MATCH (TITLE) AGAINST ($description) AND ARTIST=$band ORDER BY relevance DESC"; $result = mysql_query($query); if (!$result) { die("Result False on line 47
$query = "SELECT * FROM $table WHERE MATCH (TITLE) AGAINST ($description) AND ARTIST=$band ORDER BY relevance DESC";
$result = mysql_query($query);
if (!$result) {
die("Result False on line 47: $result <br>
Query: $query <br>
Error: " . mysql_error());
}
$query=“从$table中选择*,其中匹配(标题)与($description)和艺术家=$band ORDER BY relevance DESC”;
$result=mysql\u query($query);
如果(!$result){
die(“第47行的结果为假:$Result
查询:$Query
错误:“.mysql_Error());
}
正如您可能预料到的那样,错误消息显示说我的MYSQL语法有错误,但我不确定它是什么,任何指针?对($description)
应该是对('$description')
ARTIST=$band
应该是ARTIST='$band'
通过查询处理的任何字符串都需要单引号('),带空格的列名需要反勾(`)
如果$description
或$band
包含任何引号或斜杠,则需要使用转义符将其转义(我还是建议这样做)
此外,您还可以将die
语句合并到查询行中:
$result = mysql_query($query) or die(
"Result False on line 47: $result <br>
Query: $query <br>
Error: " . mysql_error()
);
$result=mysql\u query($query)或die(
“第47行的结果为假:$Result
查询:$Query
错误:“.mysql_Error()
);
有时,即使语法正确,也会出现此错误,因为某些SQL版本不支持此语法
确保您的MySQL版本是否支持此查询,然后再考虑其他方法