【发布时间】:2008-10-06 04:33:29
【问题描述】:
我刚搬到一家新的托管公司,现在每当一个字符串被转义时使用:
mysql_real_escape_string($str);
斜线保留在数据库中。这是我第一次看到这种情况发生,所以我的脚本都没有使用
stripslashes()
没有了。
这是在 CentOS 4.5 64 位上运行 php 5.2.6 作为 fastcgi 在 lighttpd 1.4 服务器上。我确保所有的 magic_quotes 选项都关闭了,并且 mysql 客户端 api 是 5.0.51a。
我的所有 6 个网络服务器都有相同的问题。
任何帮助将不胜感激。
谢谢。
编辑:
Magic Quotes 未开启。请不要建议关闭它。这不是问题。
【问题讨论】:
-
如果您回显 SQL 语句,它们的斜线是否正确?
-
是的。这是MySQL在插入时在字符串中留下斜杠,就好像我调用了addslashes()一样。
-
使用 PDO 那么你所有的逃逸和注入问题都会消失。
-
埃里克,你有没有解决这个问题?我也只是切换主机并看到同样的问题。当然有 varified magic_quotes 已关闭。
标签: php mysql mysql-real-escape-string