在MySQL DB中存储关联数组

时间:2010-07-27 07:52:18

标签: php mysql xml json implode

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

我在想:

  • implode / explode - 需要找到分隔符,它不会出现在值中 - 因为它几乎是用户生成的,不安全的
  • XML - 感觉工作量很大(创建/读取值)
  • json - 如果我只需要与json_decode / json_encode合作,那么看起来很完美

您怎么看?

拜托,请不要转发我这样的其他问题,我已经阅读了大部分内容,但我仍然不确定:)

4 个答案:

答案 0 :(得分:7)

答案 1 :(得分:2)

这一切都取决于您在数据库中获取数据后要检索此数据的方式。当然你可以序列化一个数组并把它放在你的字段中,但是如果你想用该数组中的数据执行查询呢?你必须拔出序列化数组,执行PHP函数,然后进行查询。

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

答案 2 :(得分:1)

您可以serialize()数组,或者在写入数据库时​​json_encode(),以及从数据库中提取时json_decode()

答案 3 :(得分:1)

还可以选择创建包含keyvalue列的表,并将每个数组元素分别存储在该表中。它可能看起来过多,但根据您对数据的处理方式可能有用,