我制作了一个包含以下字段的表格:
`id` type:INT,
`id_list`type:TEXT,
`name`type:VARCHAR(255).
id
是我的主键。
从 phpmyadmin 3.4.11.1deb2,我插入一行:
(`null`, `'["1","2","3","4"]'`, `'TEST'`)
并成功保存到表中。
但是,当我尝试更新 id_list
字段,而不是包含 ["1","2","3","4"]
的文本字段,我看到一个下拉列表,其中每一行都相当于我存储的文本数组。
这是设计使然还是 phpmyadmin 呈现结果文本的方式存在错误?
我不得不使用不同的表格作为示例,但请注意下拉列表而不是文本字段。
最佳答案
正如@Wrikken 在对您的问题的评论中所说,您可能通过这些字段在表之间建立了一些关系。 我使用了一个非常相似的表结构,并且还添加了一个表来重现我正在谈论的假设:
-- First table, similar to problem table
CREATE TABLE
bars
(id
int(11),list
text,bar
varchar(255), PRIMARY KEY (id
) );INSERT INTO
bars
(id
,list
,bar
) VALUES (1, '["1","2","3","4"]', 'TEST');-- Second table, to reproduce the assumtion
CREATE TABLE
foos
(id
int(11),foo
varchar(255), PRIMARY KEY (id
) );INSERT INTO
foos
(id
,foo
) VALUES (1, 'foo1'), (2, 'foo2'), (3, 'foo3'), (4, 'foo4'), (5, 'foo5'), (6, 'foo6');
从头开始一切正常,我可以将 TEXT 字段编辑为文本:
为了重现“下拉”效果,我打开了一个有问题的 bars
表(带有 TEXT 字段)关系:
并添加了对 foos
的引用,这是一个包含可能 ID 的表格,以数组形式存储在 list
TEXT 字段中:
现在,当编辑记录时,我有一个下拉列表而不是 TEXT list
字段的 textarea
因此,请尝试检查您的 TEXT 字段是否涉及任何关系
抱歉,还没有代表发表评论,所以给出一个可能根本不是解决方案的完整答案
关于phpmyadmin:如果数据最初存储为数组,则无法更改文本的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21086316/