PHP的波兰字符选择问题

时间:2019-04-04 13:11:01

标签: php

当我输入波兰语字符时,搜索出现问题。输入正常值后,搜索引擎即可正常工作。但是,当我输入带有波兰字符的值时,例如ł,我什么都找不到。

另一件事,当我将$searchingVal替换为普通文本时,  波兰字符,然后搜索引擎工作  正确。

$searchingVal = $ _GET ['name'];
"Select * From` customers` WHERE name LIKE '% $ searchingVal%' "

1 个答案:

答案 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();