注意:它适用于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."%')
答案 0 :(得分:1)
这是因为功能滥用。
如果你想到它,一个名为 html 实体的函数似乎与SQL的东西没有任何关系。它没有。
您必须使用与SQL相关的运算符,而不是一些不相关的函数。即准备好的陈述。所以你的PHP代码应该是
if (isset($_GET['query'])){
$query = "%".$_GET['query']."%";
}
和SQL一样
(address LIKE ? OR country LIKE ?)
然后准备你的查询并按常规方式执行