可能重複:
What does mysql_real_escape_string() do that addslashes() doesn't?SQL注入可以防止只用addslashes(字符串)?
如果沒有,我已經使用函數mysql_escape_string,並將其添加字符如\ r \ n中的話,我不希望出現這種情況..
可能重複:
What does mysql_real_escape_string() do that addslashes() doesn't?SQL注入可以防止只用addslashes(字符串)?
如果沒有,我已經使用函數mysql_escape_string,並將其添加字符如\ r \ n中的話,我不希望出現這種情況..
不,這不安全。改爲使用mysql_real_escape_string()
。它不應該添加任何東西來超越它所需的字符串。
http://php.net/mysql-real-escape-string
這也適用於其他數據庫太:使用特定的擴展逃逸功能。
不,addslashes
不夠好。 mysql_escape_string
不一定夠好。使用mysql_real_escape_string
。
無論你喜歡它添加與否都無關緊要,它只會轉義字符以確保查詢語法的有效性。如果這阻礙了你正在做的事情,那麼你做錯了什麼。
您也可以選擇使用mysqli函數和Prepared Statements。這在很大程度上避免了這個問題,因爲所有引號都被認爲是數據的一部分。
`mysql_real_escape_string`不會向最終數據添加任何內容。如果發生這種情況,請另外提出一個問題,可能還有其他問題 – 2011-01-09 00:16:36
如果您在使用mysql_real_escape_string()添加內容時遇到問題,請確保Magic Quotes已關閉。 – keithjgrant 2011-01-09 00:21:00