2017-10-18 13 views
0

MySqlテーブルにhtml構文の文字列を保存したいとします。例えば、<a href="https://www.google.com">Google</a>です。私は直接これを挿入しようとすると、私はSQL構文エラーを取得しています。私はStore HTML into MySQL databaseの同じ質問を見ました。ここで私が上のリンクから得た解決策は、URLの前と後に1つ追加されます。だから私はこれについて何か別のものを知る必要がありますか?私はこれを追加しているので、DBに保存することができますが、これをフェッチするときにjspページに同じ文字列を渡す必要があるので、DBにリンクを保存している間に余分な文字を削除する必要があります。これを避けるには、可能な選択肢がありますか?MySqlでhtml構文を保存する

私の要件を具体化する:私は<a href="https://www.google.com">Google</a>のような文字列を、Varchar型のテーブル 'GoogleLinks'とカラム 'link'に格納する必要があります。その後、文字列変数に文字列を戻す必要があり、この文字列が

タグの間に来るjspページにこれを渡す必要があります。だから、html文字列を変更せずにこれをデータベースに保存する方法はありますか、SQL構文エラーを避けるために前後に適用できるメソッドがあります。 Javaは私のバックエンド言語です。

+0

[HTMLをMySQLデータベースに保存する](https://stackoverflow.com/questions/2641561/store-html-into-mysql-database) – AgapwIesu

+0

リンクした質問に対する回答を理解する必要があります答えの合計はURLの周りに引用符を付けるだけではありませんでした) - 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 | 
+------------------------+----------+ 

アプリケーションコードでは、これら2つの属性をそのままフェッチし、それらをHTMLテンプレートにフォーマットします。

データベースではなくアプリケーションビューでHTMLフォーマットを実行すると、ハイパーリンクにCSSクラスを適用する必要がある場合など、プレゼンテーションをより簡単にカスタマイズできます。

+1

"価値があるのは、データベースにHTML構文を保存しないで、URLとテキストを別々に保存するということです。 – AgapwIesu

関連する問題