我嘗試使用mysql_real_escape_string防止SQL注入將數據插入到數據庫之前之後:顯示文本區域內的多個線路使用mysql_real_escape_string
$data=mysql_real_escape_string($_POST['data']);
現在,數據存儲爲這樣:
That\\\'s an apostrophe.\r\n\r\nThis new line isn\\\'t displaying properly!
所以,我試圖讓它正確地顯示在一個textarea裏面,然後將它從mysql中取出:
$data = nl2br($data);
無論出於何種原因,這沒有什麼。我甚至試着用str_replace
來代替\r\n'
s,用<br>
,但是<br>
只顯示在textarea中。
如何獲得什麼在我的MySQL作爲顯示:
That's an apostrophe.
This new line isn't displaying properly!
驗證您的代碼。看起來你多次逃避該字符串。 'mysql_real_escape_strin'的輸出應該是:'這是一個撇號。這條新線路沒有正確顯示!'。哪個會正確出來。 – phpisuber01
請注意,'mysql_xxx()'函數被認爲是過時且不安全的(即使您正在轉義)。他們也被棄用,這意味着他們可能會在未來的版本中從PHP中刪除。建議切換到相應的'mysqli_xx()'函數或PDO庫。另見http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-function-in-php – SDC