我让用户输入他们的名字,如:O'riley
。
在将此数据输入 MySQL 数据库之前,我运行 mysql_real_escape_string
。
问题是,当我随后选择此数据进行显示并稍后使用时,结果显示为:O\'riley
。
显然,这是预期的操作。我想知道的是,是否有某种方法可以确保我可以将它存储在数据库中(仍然安全地转义可能的恶意代码),这样我就不必在输出上使用 strip_slashes()
每次我在整个网络应用程序中调用数据?或者,我在这里遗漏了什么吗?
谢谢。
更新 请引用 Deceze 回答中的评论。
最佳答案
不,将字符串存储为“O\'riley”不是预期的操作;它应该只在查询中转义,而不是这样存储。我猜 PHP 通过 Magic Quotes 放入反斜杠, 然后你再次逃脱它以使其粘住。
关于php - 关于 mysql_real_escape_string 和 strip_slashes 的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9286432/