在单个MYSQL单元格中插入多个值

时间:2013-06-30 16:58:08

标签: php mysql

有人可以建议我如何使用Php在单个MySQL单元中存储多个值? 我只是使用插入功能,但它根本没有帮助。

2 个答案:

答案 0 :(得分:9)

不,不,不,不,不!

永远不要在单个单元格中存储多个值。它会始终回复你。这是针对the 3rd rule of DB normalization

仅在单元格中插入单个值,并在必要时添加多个记录。实施例

photos table:          id  | filename
                       1   | 'myfoto.jpg'

comments table:       photo_id | user_id  | comment
                      1        | 23       | 'great picture'
                      1        | 99       | 'nice'
                      1        | 7        | 'do not like it'

答案 1 :(得分:1)

虽然我完全同意之前的回答,在单个单元格中存储多个值是非常糟糕的做法,但在某些特殊情况下,您可以执行此操作。

所以,如果你坚持,你需要创建一个包含所有值的字符串。最简单的方法是用逗号,换行符或其他一些在实际值中不出现/禁止的字符分隔它们。不过,请务必先对它们进行消毒。

如果您的值更复杂,可以将它们放入数组并使用PHP序列化(序列化/反序列化)或json编码(json_encode / json_decode)。

获得字符串后,只需使用UPDATE查询来更新该数据库行。