在我的形式之一我使用雅虎的富文本編輯器報價數據! 現在我想將該textarea中的數據存儲在MySQL數據庫中。如何存儲包含在MySQL
用戶可在文本區域,例如輸入任何東西許多雙引號或單引號。
我如何存儲數據?
通常我們存儲通過增加一個變量,然後把數據在SQL,但是雙引號引起問題。
在我的形式之一我使用雅虎的富文本編輯器報價數據! 現在我想將該textarea中的數據存儲在MySQL數據庫中。如何存儲包含在MySQL
用戶可在文本區域,例如輸入任何東西許多雙引號或單引號。
我如何存儲數據?
通常我們存儲通過增加一個變量,然後把數據在SQL,但是雙引號引起問題。
...或MySQLi與預處理語句(我更喜歡PDO雖然) – binaryLV 2010-04-27 12:10:18
您可以使用mysql_real_escape_string()
。
轉義在 unescaped_string特殊字符,並考慮到 當前字符集的 連接,從而可以安全放置 它用於mysql_query()。如果要插入二進制數據 ,則必須使用此函數 。
mysql_real_escape_string()調用 MySQL的庫函數 mysql_real_escape_string,其中 預規劃反斜槓以下 字符:\ X00,\ n,\ r,\,」,「和 \ X1A
此功能。必須始終(除了少數例外 )被用來發送一個查詢到MySQL之前,使數據安全 。
如
$value = mysql_real_escape_string(" ' \" etc ");
$sql = "INSERT INTO blah VALUES ('$value')";
但是更好的解決方案是使用PDO和prepared statements。
...「mysql_real_escape_string」 是一個MySQL函數,而不是PHP。 您的示例: $ value = mysql_real_escape_string(「'\」etc「); 會返回未知函數的PHP錯誤,以及開放式字符串 – ashleedawg 2017-10-06 08:45:04
@ashleedawg無法確定我理解。如果它不存在,那麼mysql模塊可能不會被加載 – 2017-10-06 11:50:42
如果PDO心不是一個選項,您可能能夠與prepared statement使用mysqli而不是當然的。
更棒了!將內容提交到數據庫時,請使用addslashes();
檢索並顯示字符串時使用stripslashes();
$字符串= 「這真棒!」
addslashes($ string); 將出現在數據庫中的真棒(並且不會破壞任何東西)
Then stripslashes($ string); 將恢復正常。
http://php.net/manual/en/function.addslashes.php
我用這一切的時候 - 簡單和直接的。
來自http://php.net/manual /en/function.addslashes.php:「高度推薦使用DBMS特定的轉義函數(例如MySQL的mysqli_real_escape_string()或PostgreSQL的pg_escape_string())」 – 2010-04-27 12:07:33
有趣!非常感謝! – Tim 2010-04-27 12:10:14
謝謝你們,
的重播。
但我只更換了引號字符...這個..
html = html.replace(/\'/g, "'"); // 39 is ascii of single quotes
html = html.replace(/\"/g, """); // 39 is ascii of double quotes
然後存儲在數據庫中。
其工作很棒..通過這種方式... 當我想要的數據,然後我只是取代它的原始。
但是,感謝您的重播..
這是JavaScript。你不能這樣逃避在客戶端,因爲這將使您的應用程序打開SQL注入我某人剛剛禁用了該腳本! – ThiefMaster 2010-05-19 11:57:10
是的,這是寫,我必須嘗試另一件事.... – Nitz 2010-05-26 09:12:56
我已經編輯了這個文件,使其更具可讀性,但請學會使用shift鍵。 – Quentin 2010-04-27 12:05:56