2017-10-18 53 views
0

我想在MySql表中存儲html語法字符串,例如<a href="https://www.google.com">Google</a>。如果即時通訊直接試圖插入這個,即時獲取SQL語法錯誤。我在Store HTML into MySQL database中看到了同樣的問題,這裏我從上面的鏈接獲得的解決方案在url前後添加了一個「'」。所以我需要知道這方面的其他選擇嗎?因爲如果我添加了這一點,我能夠將其保存在數據庫中,但在獲取此信息時,我需要將相同的字符串傳遞給一個jsp頁面,所以我需要刪除保存鏈接到數據庫時添加的額外字符。爲了避免這種情況,有沒有其他可能的選擇?在MySql中存儲html語法

詳細闡述我的要求:我需要將一個像<a href="https://www.google.com">Google</a>這樣的字符串存儲到具有類型Varchar的表'GoogleLinks'和列'links'中。之後,我需要將字符串返回到字符串變量中,並且需要將此字符串傳遞給jsp頁面,其中此字符串將在

標記之間出現。那麼有什麼方法可以在不修改html字符串的情況下將其存儲在數據庫中,或者有什麼方法可以在避免sql語法錯誤之前和之後應用。 Java是我的後端語言。

+0

[將HTML存儲到MySQL數據庫中]可能的副本(https://stackoverflow.com/questions/2641561/store-html-into-mysql-database) – AgapwIesu

+0

您需要了解所鏈接問題的答案(否,答案的總和不是隻加上引號) - https://stackoverflow.com/q/2641561/4843530。一旦你這樣做了,你會發現你的問題是那個問題的重複。 – AgapwIesu

回答

0

您可以使用Base64解碼和編碼您的字符串。這將確保您的字符串中不存在特殊字符。

2

這是在做你描述的例子:

mysql> create table GoogleLinks (links varchar(255)); 
Query OK, 0 rows affected (0.03 sec) 

mysql> insert into GoogleLinks set links = '<a href="https://www.google.com">Google</a>'; 
Query OK, 1 row affected (0.02 sec) 

mysql> select * from GoogleLinks; 
+---------------------------------------------+ 
| links          | 
+---------------------------------------------+ 
| <a href="https://www.google.com">Google</a> | 
+---------------------------------------------+ 

如果字符串包含文字撇號字符('),你必須轉義。

對於它的價值,我絕不會在數據庫中存儲HTML語法。我會分開存儲URL和文本。

mysql> create table GoogleLinks (url varchar(255), linktext varchar(255)); 
Query OK, 0 rows affected (0.03 sec) 

mysql> insert into GoogleLinks set url = 'https://www.google.com', linktext = 'Google'; 
Query OK, 1 row affected (0.01 sec) 

mysql> select * from GoogleLinks; 
+------------------------+----------+ 
| url     | linktext | 
+------------------------+----------+ 
| https://www.google.com | Google | 
+------------------------+----------+ 

在您的應用程序代碼中,按原樣獲取這兩個屬性,然後將它們格式化爲HTML模板。

在應用程序視圖而不是數據庫中執行HTML格式允許您更輕鬆地自定義演示文稿,例如,如果您需要將CSS類應用於超鏈接。

+1

「對於它的價值,我絕不會將HTML語法存儲在數據庫中,我會分開存儲URL和文本。」......對此很有幫助。 – AgapwIesu