在 MySQL DB 中存储关联数组

发布于 2024-09-11 05:14:53 字数 339 浏览 7 评论 0原文

我想将主要包含字符串和整数的关联数组存储为数据库中的值。

我在想:

  • 内爆/爆炸 - 需要找到分隔符,它不会出现在值中 - 因为它几乎是用户生成的,不安全
  • XML - 对于作业(创建/读取值)
  • json - 如果我只需要使用 json_decode/json_encode,看起来很完美

你觉得怎么样?

请不要向我转发类似的其他问题,我已经阅读了其中的大部分问题,但我仍然不确定:)

I'd like to store associative array containg mostly strings and integers as values in db.

I was thinking:

  • implode/explode - need to find delimiter, which won't be in values - since it's almost user generated, not safe
  • XML - feels to heavy for the job (creating/reading values)
  • json - if i need only to work with json_decode/json_encode, seems perfect

What do you think?

Please, do not forward me to other questions like this on SO, I've read most of them and I'm still not sure :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

遥远的她 2024-09-18 05:14:54

您可以在写入数据库时​​使用 serialize() 数组,或 json_encode() 数组,以及在从数据库获取数据时使用 json_decode() 数组。

You could either serialize() the array, or json_encode() it when writing to the database, and json_decode() when fetching from the database.

木森分化 2024-09-18 05:14:54

这实际上完全取决于您在数据库中获取该数据后想要检索该数据的方式。当然,您可以序列化一个数组并将其放入您的字段中,但是如果您想使用该数组中的数据执行查询该怎么办?您必须取出序列化数组,执行 PHP 函数,然后执行查询。

您需要解释您想要使用此关联数组数据实现什么目的。

It really all depends on the way in which you want to retrieve this data once you DO get it in the database. Sure you could serialize an array and put it in your field, but what if you want to perform queries with the data in that array; you'd have to pull the serialized array out, perform PHP functions, and then do your query.

You need to explain what it is you want to achieve with this associative array data.

因为看清所以看轻 2024-09-18 05:14:54

还可以选择创建一个包含keyvalue 列的表,并将每个数组元素单独存储在该表中。它可能看起来有些过分,但根据您想要对数据执行的操作,可能会被证明是有用的

There's also the option of creating a table with key and value columns, and storing each array element individually in that table. It might seem excessive, but could prove useful depending on what you want to do with the data

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文