我有一个网页,它使用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)."'";}
。查询现在已成功执行,但没有结果。
听起来你使用的数据库连接有不同的字符编码,我会检查默认编码,或者尝试显式设置。