我在任何人詢問之前對每個INSERT使用mysql_real_escape_string()
。 但是,我希望用戶能夠輸入撇號,但它們以反斜槓形式出現。不過,我也希望他們能夠使用反斜槓。允許在SQL中使用撇號
用戶是可信的,但有可能允許這些字符,同時也防止SQL注入的可能性?
我在任何人詢問之前對每個INSERT使用mysql_real_escape_string()
。 但是,我希望用戶能夠輸入撇號,但它們以反斜槓形式出現。不過,我也希望他們能夠使用反斜槓。允許在SQL中使用撇號
用戶是可信的,但有可能允許這些字符,同時也防止SQL注入的可能性?
您可以使用strip_slashes函數刪除撇號插入的所有斜線。
因此,您使用mysql_real_escape_string()將數據插入到數據庫中。然後,當你想將數據拉到前端時,通過函數stripslashes()運行它,它將刪除所有的斜線。
您應該考慮使用mysqli,因爲mysql已被棄用。
如果OP提到SQL注入,那麼使用不推薦的'mysql_ *'函數並不是一個好的答案。 –
有意破壞數據的轉義函數非常危險。幸運的是,這不是'mysql_real_escape_string()'的工作方式。 –
這應該是「接近重複」的投票而不是答案。 –
@ÁlvaroG.Vicario1.答案是一樣的,但問題不同。 OP認爲他的問題是「如何允許撇號」 - 這可能是他尋找解決方案失敗的原因。簡單地關閉重複是沒有幫助的,因爲他沒有意識到「允許」的概念是有缺陷的,直到他這樣做,另一個問題似乎脫節。無論哪種方式,我仍然需要將問題標記爲模糊的代表200分,所以答案是我能做的最好的。 – Sylverdrag
我不問如何防止SQL注入。我問如何「解決」撇號變成反斜槓等事實,並顯示這些字符**沒有**允許SQL注入 – DorianHuxley