我有一个简单的MySQL查询:PHP/MySQL的选择和特殊字符
$query = addslashes($_REQUEST['query']);
$sql = mysql_query ("SELECT * FROM countries WHERE name LIKE '%{$query}%'");
它适用于任何$查询,除非它有它特殊字符。
假设我在寻找“奥兰群岛”或“科特迪瓦”,它不会找回任何东西。
我也尝试没有addslashes,但它只是不会改变任何东西。
谢谢你的帮助。
编辑
这是我的变量设置在MySQL:
character_set_client | utf8
character_set_connection | utf8
character_set_database | utf8
character_set_filesystem | binary
character_set_results | utf8
character_set_server | latin1
character_set_system | utf8
的字符集服务器是我无法改变。它似乎是由我的主机设置的。 任何尝试改变这一点都会给我一个信息,告诉我我没有超级权限允许我这样做。
试试这个:-http ://stackoverflow.com/questions/18455406/how-to-extract-data-from-mysql-that-contains-special-characters或http://stackoverflow.com/questions/10578694/mysql-selecting-string-with -multi-special-characters在搜索时替换这些字符 – Divya
请检查输入字符串和数据库编码是否为sa我(显然我建议UTF-8) –
@洛伦佐马尔孔:我编辑了我的问题。这可能会给你一些额外的信息。 – Baylock