使用斜杠转义然后使用stripslashes PHP

时间:2009-08-17 06:24:13

标签: php

在我的代码中,我使用addslashes来转义某些字符,同时将它们插入到数据库中,当我发送一些信息时,我使用stripslashes删除那些斜杠,情况是stripslashes函数删除所有斜杠,所以如果我需要发送任何具有反斜杠的字符串也会被删除。我怎样才能保留那些必要的斜杠。

任何帮助都会非常感激。

4 个答案:

答案 0 :(得分:8)

您可能想尝试使用mysql_real_escape_string。您不必忘记它,并且数据库使用是安全的。

更好的是,使用prepared statements

答案 1 :(得分:3)

您可以在插入数据库时​​尝试使用PDO预处理语句,这样您就不必担心转义任何内容。

答案 2 :(得分:2)

  

在我的代码中,我使用addslashes来将某些字符插入到数据库中时将其转义,当我发送一些信息时,我使用stripslashes删除那些斜线...

你做错了。将查询嵌入字符串时必须转义字符串。 从数据库返回时, unescape数据。没有要删除的斜杠。它们只存在于查询中 - 而不是存在于数据库中。

除此之外,绑定参数/预处理语句要好得多,正如本线程中的其他人已经注意到的那样。

答案 3 :(得分:-3)

我认为最好使用htmlspecialchars来转发数据库存储的数据。从数据库获取它们后,您不必担心还原它们,因为它们将由浏览器正确处理。