当我输入波兰语字符时,搜索出现问题。输入正常值后,搜索引擎即可正常工作。但是,当我输入带有波兰字符的值时,例如ł
,我什么都找不到。
另一件事,当我将$searchingVal
替换为普通文本时,
波兰字符,然后搜索引擎工作
正确。
$searchingVal = $ _GET ['name'];
"Select * From` customers` WHERE name LIKE '% $ searchingVal%' "
答案 0 :(得分:0)
这听起来很像字符编码问题。您的MySQL字符集很可能设置为Latin1或类似字符。将所有内容切换到UTF8将消除这些问题。您可以尝试以性能为代价手动进行这种转换,因此可以进行比较
CONVERT(name USING utf8)
使用
'%' . utf8_encode($searchingVal) . '%';
除此之外,您的代码还可以进行SQL注入,因此您应该真正使用预处理语句,而不是与您的问题类似的SQL,因此代码可能更像:
$sql = "SELECT *
FROM `customers`
WHERE CONVERT(name USING utf8) LIKE ?"
$db = new mysqli($dbHost, $dbUser, $dbPassword, $dbName);
$stmt = $db->prepare($sql);
$stmt->bind_param('s', '%' . utf8_encode($searchingVal) . '%';
$stmt->execute();