SQL查询在PHP中返回空结果——同样的查询在PHPMyAdmin中返回结果


SQL query returns empty result in PHP - same query returns result in PHPMyAdmin

我有一个网页,它使用PHP执行多个MySQL查询并返回结果。一个查询包含一个特殊字符-Isla-as in。。。WHERE region="Île-de-France"。。。当由PHP执行时,该查询成功执行,但返回一个空的结果集,而它应该返回一个结果。在一次调试尝试中,我在保存sql查询的$sql变量上使用了echo(就在执行之前),并将结果复制到PHPMyAdmin中。在这里,相同的查询返回了我所期望的结果。

为什么这个查询在PHP执行时什么也不返回?

我根据我不太了解的信息尝试过的东西:

在执行查询之前,我使用了$sql=$db->real_escape_string($sql)。这将$sql的相关部分更改为...WHERE region='"Île-de-France'"。。。并且在执行查询时导致错误。

我也试过if($state){$sql=$sql." AND state ='".$db->real_escape_string($state)."'";}。查询现在已成功执行,但没有结果。

听起来你使用的数据库连接有不同的字符编码,我会检查默认编码,或者尝试显式设置。