我什么时候应该使用mysql_real_escape_string?
仅当我将行插入数据库时?或者只有当我有用户输入时?
由于
答案 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注入是一个黑客工具,用于通过表单数据查询某些查询网站}