在MySQL数据库中存储&(&)的最佳方式

问题描述 投票:0回答:6

我正在构建类别列表,但不确定如何存储 & 符号 在 MySQL 数据库中。如果我使用

'&'
有什么问题/缺点吗?有什么区别吗 以 html 格式使用它
'&amp'

php mysql html ampersand
6个回答
10
投票

使用“&”可以节省一些字节。它不是 MySQL 的特殊字符。您可以使用 PHP 的方法

&
 轻松生成 
htmlspecialchars()
以便稍后输出。当您的字段旨在保留简单信息时,您应该仅使用纯文本,因为这通常更灵活,因为您可以稍后生成不同类型的标记等。例外:标记是由用户生成的,您希望将其布局决策与文本一起保存(如在富文本输入中)。如果您的输入中有标签等,您可能需要使用
&
来保持一致性。


4
投票

仅当数据库中的字段包含 HTML(如

&
)时,才应将其存储为
<span class="bold">some text</span> &amp; more
。在这种情况下,您应该非常小心XSS

如果该字段包含一些常规数据(例如用户名、标题...等),则只有在将其放入 HTML 中时才应该对其进行转义(例如使用 htmlentities)。


2
投票

将其存储为

&amp;
是一种合适的方法。您可以回显它或在语句中使用它作为
&amp;


2
投票

我们一直将“&”存储到数据库字段中,这样做很好(至少我从未听到过其他说法)。

如果您只在 HTML 页面中使用该字符串,我想您可以只存储 HTML 安全

&amp;
版本。我建议存储 '&' 并在阅读时转义它会更好(以防将来您需要在非 HTML 上下文中使用该字符串)。


1
投票

如果您想要拥有有效的 HTML 或避免出现问题,请使用

&amp;
,例如
cut&copy
(浏览器 将其显示为 cut©
)。


0
投票
为了确保正确显示集合的描述,同时消除任何潜在的 HTML 标签,代码

{!! strip_tags($collection->description) !!} 可用于指定标志,"&".

© www.soinside.com 2019 - 2024. All rights reserved.