在我的代码中,我使用addslashes来转义某些字符,同时将它们插入到数据库中,当我发送一些信息时,我使用stripslashes删除那些斜杠,情况是stripslashes函数删除所有斜杠,所以如果我需要发送任何具有反斜杠的字符串也会被删除。我怎样才能保留那些必要的斜杠。
任何帮助都会非常感激。
答案 0 :(得分:8)
您可能想尝试使用mysql_real_escape_string。您不必忘记它,并且数据库使用是安全的。
更好的是,使用prepared statements
答案 1 :(得分:3)
您可以在插入数据库时尝试使用PDO预处理语句,这样您就不必担心转义任何内容。
答案 2 :(得分:2)
在我的代码中,我使用addslashes来将某些字符插入到数据库中时将其转义,当我发送一些信息时,我使用stripslashes删除那些斜线...
你做错了。将查询嵌入字符串时必须转义字符串。 从数据库返回时,不 unescape数据。没有要删除的斜杠。它们只存在于查询中 - 而不是存在于数据库中。
除此之外,绑定参数/预处理语句要好得多,正如本线程中的其他人已经注意到的那样。
答案 3 :(得分:-3)
我认为最好使用htmlspecialchars来转发数据库存储的数据。从数据库获取它们后,您不必担心还原它们,因为它们将由浏览器正确处理。