2010-04-27 29 views
3

在我的形式之一我使用雅虎的富文本編輯器報價數據! 現在我想將該textarea中的數據存儲在MySQL數據庫中。如何存儲包含在MySQL

用戶可在文本區域,例如輸入任何東西許多雙引號或單引號。

我如何存儲數據?

通常我們存儲通過增加一個變量,然後把數據在SQL,但是雙引號引起問題。

+1

我已經編輯了這個文件,使其更具可讀性,但請學會使用shift鍵。 – Quentin 2010-04-27 12:05:56

回答

1

您可以使用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')"; 

但是更好的解決方案是使用PDOprepared statements

+0

...「mysql_real_escape_string」 是一個MySQL函數,而不是PHP。 您的示例: $ value = mysql_real_escape_string(「'\」etc「); 會返回未知函數的PHP錯誤,以及開放式字符串 – ashleedawg 2017-10-06 08:45:04

+0

@ashleedawg無法確定我理解。如果它不存在,那麼mysql模塊可能不會被加載 – 2017-10-06 11:50:42

-4

更棒了!將內容提交到數據庫時,請使用addslashes();

檢索並顯示字符串時使用stripslashes();

$字符串= 「這真棒!」

addslashes($ string); 將出現在數據庫中的真棒(並且不會破壞任何東西)

Then stripslashes($ string); 將恢復正常。

http://php.net/manual/en/function.addslashes.php

我用這一切的時候 - 簡單和直接的。

+0

來自http://php.net/manual /en/function.addslashes.php:「高度推薦使用DBMS特定的轉義函數(例如MySQL的mysqli_real_escape_string()或PostgreSQL的pg_escape_string())」 – 2010-04-27 12:07:33

+1

有趣!非常感謝! – Tim 2010-04-27 12:10:14

-4

謝謝你們,
的重播。
但我只更換了引號字符...這個..

html = html.replace(/\'/g, "'"); // 39 is ascii of single quotes 
html = html.replace(/\"/g, """); // 39 is ascii of double quotes 

然後存儲在數據庫中。
其工作很棒..通過這種方式... 當我想要的數據,然後我只是取代它的原始。

但是,感謝您的重播..


Nitish。
Panchjanya Corporation

+0

這是JavaScript。你不能這樣逃避在客戶端,因爲這將使您的應用程序打開SQL注入我某人剛剛禁用了該腳本! – ThiefMaster 2010-05-19 11:57:10

+0

是的,這是寫,我必須嘗試另一件事.... – Nitz 2010-05-26 09:12:56