Это код:запрос не работает над сценарием, но работает на PhpMyAdmin
$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 результатов.
Любая идея, что заставляет его терпеть неудачу в моем запросе?
Где код, в котором переменная MySQL @CityNameWithin устанавливается в PHP? Переменная MySQL, вероятно, не переносится, потому что соединение PHP MySQL отличается. – virmaior
@virmaior a 'var_dump()' on '$ parameter' перед символом' bind_param' возвращает строку со значением '@ CityNameWithñ' и соединение в порядке. Снова, как упоминалось выше, скрипт работает, если значение '$ parameter' не имеет' - ', но ничего не возвращает, если оно имеет' ''. –
Что такое кодировка соединений для вашего кода PHP vs phpmyadmin? – virmaior