为什么要使用mysql_real_escape_string,不会addlashes阻止一切?

Web*_*net 3 php security

我正在查看文档并偶然发现mysql_real_escape_string(),我不明白为什么它只是在addslashes()时才有用.有人能告诉我一个有用的原因吗?

我也很好奇它为什么需要数据库连接....这似乎是很多开销.

kar*_*ins 7

这里有一篇很棒的文章.讨论还指出了每种解决方案的优缺点.

addslashes()来自PHP的开发人员,而mysql_real_escape_string使用底层的MySQL C++ API(即来自MySQL的开发人员).mysql_real_escape_string转义EOF字符,引号,反斜杠,回车符,空值和换行符.还有charset方面.