Eri*_*amb 12 php mysql mysql-real-escape-string
我刚搬到一家新的托管公司,现在每当一个字符串被转义时使用:
mysql_real_escape_string($str);
Run Code Online (Sandbox Code Playgroud)
斜杠仍保留在数据库中.这是我第一次看到这种情况发生,因此我的脚本都没有使用
stripslashes()
Run Code Online (Sandbox Code Playgroud)
了.
这是在一个运行php 5.2.6的CentOS 4.5 64bit作为lighttpd 1.4服务器上的fastcgi.我确保所有magic_quotes选项都关闭,mysql客户端api是5.0.51a.
我在所有6个网络服务器上都遇到了同样的问题.
任何帮助,将不胜感激.
谢谢.
And*_*ter 16
你搬家的主人可能已经magic_quotes_runtime
开启了.你可以把它关掉set_magic_quotes_runtime(0)
.
请关闭magic_quotes_runtime
,然后更改代码以使用绑定变量,而不是使用字符串转义.
Ste*_*ayi -4
mysql_real_escape_string($str);
应该正是这样做的。它的目的是向特殊字符添加反斜杠,特别是当您想将查询传递给 mysql 时。请注意,它还考虑了 mysql 的字符集。
为了更安全的编码实践,最好编辑代码并使用它stripslashes()
来读出数据并删除斜杠。