查询不在脚本上工作但在phpMyAdmin上工作

时间:2014-02-01 15:18:58

标签: php mysql mysqli

这是代码:

$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个结果。

知道是什么让我的查询失败了吗?

1 个答案:

答案 0 :(得分:0)

在阅读评论和更多搜索后,我发现问题是charset问题。

在建立mysqli连接后将$connection->set_charset("utf8")添加到脚本中。

谢谢!