2010-09-24 107 views
0

使用PDO时,是否还需要使用addslashes或者已经使用PDO完成了这项工作?使用PDO消毒变量

如果它已经完成,那么在将数据插入表之前,还有其他的消毒方法吗?

+0

PDO没有银弹。如果你使用SQL连接'name = $ name',而不是像'?,name = ?, id =?或:名称“,那么你什么都没有实现。 – mario 2010-09-24 02:34:41

+0

我使用:名称,但名称和名称=之间有什么不同? – Catfish 2010-09-24 14:14:15

回答

2

不,如果您正确使用PDOStatement,您绝对不需要addslashes。您不需要额外的清理来防止SQL注入。但是,您可能仍然希望以其他方式进行验证。例如,您可能会检查电子邮件字段“看起来像”电子邮件地址,或确保纯文本字段不包含某些字符。最后,当您从输出文本数据库时,您可能必须转义(例如,使用htmlspecialchars)。

+0

但是当我重新查询数据时,我仍然需要使用stripslashes吗? – Catfish 2010-09-24 01:37:31

+2

@Catfish,不,你的数据库不应该包含斜线转义的数据。 – 2010-09-24 01:38:17