MySQL编写的语句我还需要使用mysql_escape_string

时间:2012-03-02 01:16:43

标签: mysql sql-injection prepared-statement

如果我在MySQL 5.3中使用预处理语句,是否还需要使用mysql_escape_string来避免SQL注入攻击?

2 个答案:

答案 0 :(得分:3)

PDO应该为您进行逃避/消毒。假设你的意思是:

$db->prepare('SELECT * FROM table WHERE foo = ?');
$db->execute(Array("bar's baz"));

答案 1 :(得分:0)

有点有趣的事情 - 即使你不在MySQL 5.3中使用预处理语句,也不应该使用mysql_escape_string来避免SQL注入攻击。 注意它不是“mysql_prevent_sql_injection()”函数,它是 mysql转义字符串之一。因此,它用于转义字符串。尽管注射可能,你必须逃脱弦乐。然而,除了引用的字符串之外,它对任何查询部分都无济于事。