【问题标题】:Store html syntax in MySql在 MySql 中存储 html 语法
【发布时间】:2018-03-30 15:46:49
【问题描述】:

我想在 MySql 表中存储一个 html 语法字符串,例如<a href="https://www.google.com">Google</a>。如果我直接尝试插入它,我会收到 sql 语法错误。我在Store HTML into MySQL database 看到了同样的问题,这里我从上面的链接得到的解决方案是在 url 前后添加了一个“'”。所以我需要知道这方面的任何替代方案吗?因为如果我添加这个,我可以将它保存在 db 中,但是在获取这个时我需要将相同的字符串传递到 jsp 页面,所以我需要删除在保存到 db 的链接时添加的额外字符。为避免这种情况,是否有任何替代方案?

详细说明我的要求:我需要将<a href="https://www.google.com">Google</a> 之类的字符串存储到表“GoogleLinks”和类型为 Varchar 的“链接”列中。之后,我需要在字符串变量中取回字符串,并需要将其传递给 jsp 页面,该字符串将出现在

之间

标签。那么有什么方法可以在不修改 html 字符串的情况下将其存储在数据库中,或者有什么方法可以在前后应用以避免 sql 语法错误。 Java 是我的后端语言。

【问题讨论】:

标签: mysql sql


【解决方案1】:

这是按照您的描述进行操作的示例:

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 类应用于超链接。

【讨论】:

  • “不管怎样,我永远不会在数据库中存储 HTML 语法。我会分别存储 URL 和文本。”.... 阿门。
【解决方案2】:

您可以使用 Base64 对字符串进行解码和编码。这将确保您的字符串中不存在特殊字符。

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    相关资源
    最近更新 更多