我的问题看似微不足道,但是我没有找到任何“好的”解决方案。
首先是一个我听到很多答案的问题,我们什么时候需要使用mysql_real_escape_string()
解析字符串?我的想法是仅在将用户给定数据存储在数据库中时才需要它,这是遵循的好规则吗?
我的第二个问题就是真正的问题。当我用mysql_real_escape_string()
解析字符串时,它将在字符串中的任何有害字符之前添加特殊字符\
,例如。如果函数找到了'
,则将在其后附加\
,因此结果为\'
。
好吧,那很好,问题是当我从数据库中读取相同的字符串时,我也得到了\
字符。有什么好的方法可以消除\
字符?
我曾经想到的是使用str_replace("\\","",$string)
,但这是一种很好且安全的方法吗?
谢谢你们!
最佳答案
首先,不建议使用mysql_real_escape_string。检查是否启用了magic_quotes:
echo "Magic quotes is " . (get_magic_quotes_gpc() ? "ON" : "OFF");
或者您可以使用
stripslashes
关于php - 摆脱mysql_real_escape_string()解析字符串上的\字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11959123/