Php mysql查询问题

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中运行它会返回正确的

我有一个小问题:

我通过ajax接收了一些参数,并进行了sql查询。很简单,但是这个查询有一些特殊字符(巴西人),我的查询看起来是这样的(因为我做了一个回音):

在脚本中是:

$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();