Php mysql查询问题
我有一个小问题: 我通过ajax接收了一些参数,并进行了sql查询。很简单,但是这个查询有一些特殊字符(巴西人),我的查询看起来是这样的(因为我做了一个回音): 在脚本中是:Php mysql查询问题,php,mysql,utf-8,character-encoding,Php,Mysql,Utf 8,Character Encoding,我有一个小问题: 我通过ajax接收了一些参数,并进行了sql查询。很简单,但是这个查询有一些特殊字符(巴西人),我的查询看起来是这样的(因为我做了一个回音): 在脚本中是: $sql = " SELECT neigh FROM address_bd WHERE state =\"$state\" AND city =\"$city\" GROUP BY neigh ORDER BY neigh ASC "; 在phpmyadmin中运行它会返回正确的
$sql = "
SELECT neigh
FROM address_bd
WHERE state =\"$state\"
AND city =\"$city\"
GROUP BY neigh
ORDER BY neigh ASC
";
在phpmyadmin中运行它会返回正确的结果,但在脚本中会给出0个结果。
我的sql行有utf8\u general\u ci。有人知道吗?多谢各位
下面是答案:
SET character\u SET\u client=utf8
这解决了问题。感谢所有人,特别是印加人发送链接。再次感谢您您应该拥有
mysql\u set\u charset(charset)代码>或数据库驱动程序的相应运算符放在数据库连接运算符之后
而字符集
应该表示HTML页面的实际字符集。可以尝试以下方法:
$sql = "SELECT neigh FROM address_bd WHERE state = '$state' AND city = '$city' GROUP BY neigh ORDER BY neigh ASC";
如果仍然不起作用,请在mysql\u查询函数之后添加此项
print mysql_error();
然后告诉这里错误消息的内容。您是否尝试查看最终组成的查询?您还应该为连接定义字符集mysql\u set\u字符集('utf8',$connection)代码>我给你看的第一个。我对$sql变量做了一个回应,发现脚本中的$city很可能不包含utf-8编码字符串,do$city=utf8\u encode($city)代码>有帮助吗?您尝试过中的所有步骤了吗?(确保您的页面和连接也是utf8。)另外:utf8\u general\u ci是一个排序选项(它与排序有关,而不是与编码有关)。根据您设置的$state
和$city
的位置,您的代码可能容易受到sql注入的攻击。考虑使用准备好的语句。
print mysql_error();