4

我什么时候应该使用 mysql_real_escape_string?

只有当我将行插入数据库时​​?或者只有当我有用户输入时?

谢谢

4

4 回答 4

2

每当您构建将针对数据库运行的查询时,您都应该使用 mysql_real_escape_string()。任何用于构建数据库查询的用户输入都应通过此函数运行。这将防止 sql 注入攻击。

当涉及到这一点时,用户输入是你最关心的领域。

于 2011-03-11T20:40:51.050 回答
2

当您将字符串的值插入 SQL 语句并且使用 MySQL API 时,您应该使用 mysql_real_escape_string。

$sql = "SELECT * FROM student WHERE foo = '" . $foo . "'";

应该:

$sql = "SELECT * FROM student WHERE foo = '" .
        mysql_real_escape_string($foo) . "'";

但是,您还应该考虑将PDO与准备好的语句和绑定参数一起使用,而不是mysql_real_escape_string. 这降低了出错的风险。

于 2011-03-11T20:46:01.167 回答
0

总是,除了整数,你使用intval()

于 2011-03-11T20:39:51.280 回答
0

它会简单地过滤表单数据中包含的所有特殊字符,以防止 SQL 注入(SQL 注入是一种黑客工具,用于通过对表单数据的一些查询来入侵网站)

于 2018-03-15T02:53:27.053 回答