将有序列表html标记存储在mysql数据库中是不好的做法

时间:2015-08-31 05:11:03

标签: php html mysql

我一直在研究这个问题很长一段时间,并没有找到这个问题的确切答案。我严格要求有序列表元素是

<ul><li></li></ul> 

标记要存储在mysql db中的元素,如果是不好的做法,执行此操作的好方法是什么?

要存储在mysql db中的数据示例:

"Get the latest products here
Price starts from $$$
Specs:
<ul>
    <li>Specs</li>
    <li>Specs</li>
    <li>Specs</li>
</ul>"

各种启蒙都受到了极大的欢迎。 THX

4 个答案:

答案 0 :(得分:1)

如果您的有序列表主要是静态的(不太可能更改),那么最好将其保留在HTML层中。如果它是动态的(可能会发生变化),那么您应该将数据项保存在您希望的任何数据存储中。 正如@unni Babu建议保持值分开并使用php循环填充值。

答案 1 :(得分:0)

为什么保存标签时最好只保存标签内的值。
我的意思是将标签中的值保存到db表中。
然后检索这些值并使用php循环显示它。
它更好 节省时间  消耗更少的空间。
易于插入和更新

答案 2 :(得分:0)

是否形状不好不是问题。它是否有效,以及编码效率的代价是否值得获得。

在不知道应用程序的其余部分的情况下,有四种方法可以解决这个问题。

  • 您正在处理的方式,但每次您需要这条HTML时,成本都是一个SQL查询。
  • 使用memcache之类的内存缓存,但取决于内存可能耗尽的碎片数量。
  • 缓存到硬盘文件,但需要在树更改时重新生成文件。
  • 每次需要时重新生成HTML。对于较小的元素可能会更快。

答案 3 :(得分:0)

我个人认为将原始HTML存储在数据库中是不好的做法,尤其是当用户有可能进入开发人员工具并手动添加恶意内容时,例如:

<ul>
  <li>Something</li>
  ...
  <script>alert("malicious code!");<script>
</ul>

除了安全风险之外,更好的存储数据的方法是将无序列表中每个textContent的{​​{1}}(而不是innerHTML)放入数组并提交相反。

相关问题