什么时候使用mysql_real_escape_string?

时间:2011-03-11 20:38:07

标签: mysql mysql-real-escape-string

我什么时候应该使用mysql_real_escape_string?

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

由于

4 个答案:

答案 0 :(得分:2)

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

用户输入是您最关心的问题。

答案 1 :(得分: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。这样可以降低出错的风险。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

它将简单地过滤包含在表单数据中的所有特殊字符,以防止SQL注入(SQL注入是一个黑客工具,用于通过表单数据查询某些查询网站}