这是代码:
$paramater = "@CityNameWithñ";
$stmt = $connection->prepare("
SELECT `col1`,`col2`
FROM `table`
WHERE MATCH (`col3`,`col4`)
AGAINST ( ? IN BOOLEAN MODE)
AND `status` = 'a'");
$stmt->bind_param("s",$parameter);
$stmt->execute();
$stmt->bind_result($r1,$r2);
while($stmt->fetch()){
var_dump($r1);
}
以上不会返回任何内容。但是,如果$parameter
的值为例如@CityName
则可行。我认为ñ
是引起问题的那个?
我在phpMyAdmin
中尝试过 SELECT `col1`,`col2`
FROM `table`
WHERE MATCH (`col3`,`col4`)
AGAINST ( '@CityNameWithñ' IN BOOLEAN MODE)
AND `status` = 'a'
有效。它返回了980个结果。
知道是什么让我的查询失败了吗?
答案 0 :(得分:0)
在阅读评论和更多搜索后,我发现问题是charset
问题。
在建立mysqli连接后将$connection->set_charset("utf8")
添加到脚本中。
谢谢!