2010-09-24 53 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