正在截断MySQL文本列
我有一个MySQL数据库,在其中我将一组文本信息存储到数据库中的一个文本字段中。这些列是 名称:info正在截断MySQL文本列,mysql,Mysql,我有一个MySQL数据库,在其中我将一组文本信息存储到数据库中的一个文本字段中。这些列是 名称:info 类型:文本 排序规则:utf8\U通用\U ci 我让一个用户在字段中插入了约64kb的信息,结果它崩溃了。它将截断最后3个字符。在本例中,这恰好是选项卡的结尾,因此它会将页面上的所有内容都搞糟。如果我手动进入数据库,删除几个字母并添加背面,那么下次我去编辑它时,最后3个字母将再次删除 phpmyadmin表示该字段太长,可能无法编辑。所以我试着在我的cms页面上编辑它,我仍然收到了相同的结
类型:文本
排序规则:utf8\U通用\U ci 我让一个用户在字段中插入了约64kb的信息,结果它崩溃了。它将截断最后3个字符。在本例中,这恰好是选项卡的结尾,因此它会将页面上的所有内容都搞糟。如果我手动进入数据库,删除几个字母并添加背面,那么下次我去编辑它时,最后3个字母将再次删除 phpmyadmin表示该字段太长,可能无法编辑。所以我试着在我的cms页面上编辑它,我仍然收到了相同的结果
mysql中单个数据库文本列中的这么多数据是否存在已知问题?似乎不应该有。我认为MySQL文本字段的最大大小小于2^16字节。使用UTF-8编码,这可能意味着更少的字符。您可以将MEDIUMTEXT用于2^24字节,或将LONGTEXT用于2^32字节,有关详细信息,请参阅
啊,一定要检查您的大小。有一个东西叫做,它说数据类型所需的存储是:
BLOB, TEXT L + 2 bytes, where L < 2^16
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 2^24
LONGBLOB, LONGTEXT L + 4 bytes, where L < 2^32
BLOB,文本L+2字节,其中L<2^16
MEDIUMBLOB,MEDIUMTEXT L+3字节,其中L<2^24
LONGBLOB,LONGTEXT L+4字节,其中L<2^32
注意,2^16==65536我的理解是文本的最大值为65000字节,大于该值的任何内容都将被截断。这似乎可以解释你的情况。你说你的用户输入的是64kb左右,是不是刚好超过65kb,加上几个(三)字节
考虑使用BLOB。您必须记住,文本最多有65535个字符。如果您的内容超过64K字节,则可能超出了字段字符的限制。我建议将您的列类型更改为MEDIUMTEXT或LONGTEXT,看看这是否解决了您的问题。我不知道MySQL中有不同的文本类型。LONGTEXT而不是BigTextThank,SysHex,您当然是对的。我改正了。