我从我的服务器向我的本地系统导入了一个MySQL表转储。我正在使用phpMyAdmin来查看我的本地MySQL数据库。持有电子邮件的列显示为BLOB - 而不是实际的电子邮件。
当我按下"编辑"它显示正确的电子邮件,但不会列出。
我完全感到困惑,为什么会发生这种情况。有人可以建议解决方案吗?
答案 0 :(得分:1)
BLOB数据类型用于存储任意二进制数据(Binary Large OBject = BLOB),例如图像或其他文档。按原样显示值是没有意义的。它看起来与在文本编辑器中查看图像相同。
您有多种选择,具体取决于您使用的phpMyAdmin版本 - 我很遗憾不知道。
an already asked question涵盖了这两种可能性。
但基本上,这只是对抗症状而不是治愈疾病。问题是:为什么选择电子邮件字段为BLOB?基本上,VARCHAR就足够了。我不知道你运行的MySQL版本,但是从MySQL 5.0.3开始,VARCHAR可以是as large as 65k byte。
ALTER TABLE
`table`
CHANGE
`email` `email` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
上面的查询将字段email
更改为VARCHAR(255)。注意你喜欢使用的长度,以及字符集和整理。但在这种情况下,UTF-8应该非常好。