搜索不搜索字母“š”

时间:2016-09-16 11:04:12

标签: php mysql mysqli

注意:它适用于phpMyAdmin 如果我在国家/地区查询LIKE '%"Šveice"%'

中执行此操作,也会有效

我的网站上有搜索栏。如果我试图找到“Šveice”(ŠveiceinLatvian =“瑞士语”英文),它将找不到任何东西,但如果我试图搜索“veice”它会找到它。 所有其他信件都在运作。

这就是我得到的:

获取搜索

if (isset($_GET['query'])){
    $query = htmlentities($_GET['query'], ENT_QUOTES, "UTF-8");
}

输入

 <input type="search" name="query" placeholder="Search..">

在数据库上使用

varchar(100)    utf8_latvian_ci 

查询的一部分

(address LIKE '%".$query."%' OR country LIKE '%".$query."%')

1 个答案:

答案 0 :(得分:1)

这是因为功能滥用。

如果你想到它,一个名为 html 实体的函数似乎与SQL的东西没有任何关系。它没有。

您必须使用与SQL相关的运算符,而不是一些不相关的函数。即准备好的陈述。所以你的PHP代码应该是

if (isset($_GET['query'])){
    $query = "%".$_GET['query']."%";
}

和SQL一样

(address LIKE ? OR country LIKE ?)

然后准备你的查询并按常规方式执行