我使用 PHP 和 MySQL 制作了一个带有评论的简单新闻系统,它在我的本地 Apache 服务器上运行良好,在我的 Fedora 10 机器和我的 Windows 7 机器上都运行良好。不过现在我遇到了问题,我将它上传到网络主机,它一直将所有 ' 和 "作为\' 和\"返回。
我相信这要么是 Web 主机出于安全原因自动添加它们,要么是 MySQL 是错误的排序规则,但我还无法解决它,测试了多个 MySQL 排序规则。
下面是一个查询示例:
mysql_query("INSERT INTO news (title, poster, text, time) VALUES ('$newstitle', '1', '$newstext', '$time')") or die(mysql_error());
$time
是 time();
$newstitle
和 $newstext
是从 $_POST
解析的,并且在我运行查询(我想这可能是问题所在,但由于它是安全的一部分,我只是不想删除它,因为它不会在我的本地服务器上造成问题)
最后一点:在我的本地 Apache 服务器上,我有 latin1_swedish_ci
,它在 Web 主机服务器上不起作用。
编辑:
它们在数据库中看起来像这样:
\'\'\'\"\"\"
虽然在我的本地服务器上没有额外的反斜杠,所以一定是 PHP 添加了它。除了添加一个删除多余反斜杠的函数之外,有什么办法可以解决这个问题吗?
最佳答案
这些额外的反斜杠可能是 Magic Quotes .试试disable them or remove them在处理数据之前。
关于php - "and ' 的 MySQL/PHP 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/865086/