2011-12-28 41 views
1

我通過PHP文本框獲取數據並使用普通插入命令將其插入MySQL數據庫。該文本框接受用戶對文本框旁邊的特定登錄ID的評論。問題是,當用戶輸入撇號(')例如「我們必須照顧個人電腦」這句話時,會出現錯誤。插入(Mysql)期間的撇號

我知道爲什麼會發生這種情況,因爲SQL假定它是該值的字符串的結尾,但我不知道如何逃避它。我寧願在MYSQL中轉義它。

如果我在MySQL中逃避它,即使沒有錯誤產生,插入工作正常,它仍然可以作爲SQL注入利用?

+0

您應該使用參數。 – SLaks 2011-12-28 02:16:08

+0

使用MySQLi準備好的語句 – 2014-06-29 12:39:24

回答

6

使用mysql_real_escape_string(),或者更好的是,使用參數化查詢與PDO

+0

我該怎麼做如果我想在MySQL中而不是PHP中轉義它。 – Ank 2011-12-28 02:15:12

+0

@Ankur:您正在爲查詢的上下文轉義它。在MySQL *中你不能逃避*,那時已經太晚了。 – alex 2011-12-28 02:16:00

+0

或者我可以在MySQL中替換(''','')嗎?我真的不在乎撇號是否在字符串中。 – Ank 2011-12-28 02:18:29