向MySQL数据库添加未知数量的值

时间:2016-01-17 01:53:45

标签: mysql sql database wordpress

我的情况是我正在创建一个wordpress插件,它会在激活时在目录中创建一个表。

此表保存输入到插件中的信息,当输入信息时,用户可以选择上传图像。他们选择上传的号码我不知道。

我遇到的问题是弄清楚如何将这些URL添加到数据库中,确定我可以将它们放在那里,但我又不知道需要添加多少URL。

由于我无法使用wordpress进行规范化,我如何将URL存储在数据库中。假设他们上传了5张图片,但我没有5个单独的列(网址1,网址2 ...)

我还应该注意,这些图像将使用for循环获取,因此无论上传的数量如何,每个图像都将被发送。

任何帮助将不胜感激 欢呼声。

2 个答案:

答案 0 :(得分:0)

如果要将所有图像网址或其他数据存储到一个数据库行中,则必须创建一个包含所需信息的数组,然后使用serialize将此数组放入一个字段中。数据库。

此字段必须为TEXTLONGTEXT才能收集所有这些信息。

然后,当您获得数据时,必须使用unserialize,如果需要,数据将再次转换为数组。

这就是WP将信息存储在postmeta表中的方式。

请注意,通过这种方式,您无法轻松查询数据,因此,如果这对您来说很重要,那么最好将每个图像存储在单独的行中。

答案 1 :(得分:0)

此外,您可以使用以下内容制作附加表:

id, information_id, filename, ordr

首先,插入infromation_table,获取最后插入的ID

然后,按顺序将所有文件名插入filenames_table

最后,您可以选择数据:

SELECT i.id, i.title, GROUP_CONCAT(a.filename ORDER BY a.ordr ASC SEPARATOR ',') AS filenames 
FROM information_table AS i 
JOIN filenames_table AS a ON (a.information_id = i.id)