我有一个网页,使用PHP执行多个MySQL查询并返回结果。
一个查询包含一个特殊字符 - Î - 如... 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)."'";}
。查询现在已成功执行但未产生任何结果。
答案 0 :(得分:2)
听起来您正在使用的数据库连接具有不同的字符编码,我会检查默认编码并尝试显式设置。