可能重复:
What does mysql_real_escape_string() do that addslashes() doesn't?
如果没有,我使用了mysql_escape_string,它会在\ r \ n之类的单词中添加字符,我不希望这样......
答案 0 :(得分:5)
不,这不安全。请改用mysql_real_escape_string()
。除了转义字符串所需的内容之外,它不应该添加任何内容。
http://php.net/mysql-real-escape-string
这也适用于其他数据库:使用特定于扩展名的转义函数。
答案 1 :(得分:3)
不,addslashes
不够好。 mysql_escape_string
不一定足够好。使用mysql_real_escape_string
。
无论你喜欢它添加与否,它都无关紧要,它只会转义字符以确保查询语法有效。如果这妨碍了你正在做的事情,你就会做错事。
答案 2 :(得分:3)
答案 3 :(得分:2)
您还可以选择使用mysqli函数和Prepared Statements。这在很大程度上避免了问题,因为所有引号都被视为数据的一部分。