2013-06-05 51 views
1

嘿所以我認爲我的問題相當簡單,但我似乎無法找到解決問題的正確方法。打破用戶輸入的單引號和雙引號

我有一個表格,用戶應該填充它,然後插入到數據庫,它可以稍後檢索,它工作正常,直到測試時,我用引號......當使用引號(單或雙)字符串關閉,並且只插入字符串的第一部分。

例如,如果他寫道:「傑夫的房子」,唯一的事情,我得到的是「傑夫\」

怎麼辦?

+2

這意味着你應該尋找在移動儘快使用預處理語句和綁定變量。 – andrewsi

+0

[大逃避現實(或:你需要知道如何處理文本中的文本)](http://kunststube.net/escapism/) – deceze

+0

閱讀關於sql注入和應用程序安全的一般問題 – user466764

回答

0

您遇到的問題是用戶可能使用MySQL injection影響您的數據庫。

PDO Prepared statements讀以避免用戶能夠使用單/雙引號,他們的優勢打破了串並命令直接發送到您的SQL數據庫,影響您的數據。

它通過將字符串從SQL語句中分離出來以使其不是數據庫指令的一部分。 (使用這個系統也意味着你的數據庫將能夠存儲整個字符串,而不管引號是什麼 - 但是它們在每一個存儲之前都會有一個斜線(\)。這些可以在顯示時刪除數據使用stripslashes命令。)