请问MySql数据库存入字符的长度有限制吗?

我现在往MySql数据库的一个表的一个列里面存入大概4586个字符就存不里去了。请问这是有最大字符长度限制吗?

与列的类型有关,CHAR 或 VARCHAR 的最大长度可以到 255,TEXT最大长度 65535,MEDIUMTEXT最大长度 16777215,LONGTEXT最大长度 4294967295。追问

请问这种情况该怎么办啊?可以改列的类型吗?只能存五千左右,而我有时候最高要存到三万左右呢。

追答

一、你首先要查看你的数据库定义,看看是否列类型造成的,如果是列类型不对,那就调整。
二、尽管TEXT可以存放64K内容,但是在不同编码下汉字的长度不同,可能存放的汉字个数只有二三万。
三、我看了,所有类型都没有限制4千多个字符的,所以很怀疑是不是你的程序问题,例如遇到什么特殊符号就认为是终止了等。

追问

请问什么字符能终止啊?我插入的是HTML代码。

刚刚我测试了一下,我插入的只有数字,果然就像您说的那样,我放了一万多个数字都可以。

难不成是HTML代码中有某个字符然后就造成了数据插入的失败?

追答

插入失败的整条记录都不能保存的,检查你插入的语句,必要的时候写入文本或者显示在浏览器,语句对插入内容是否是用了引号,插入的内容里面是否有引号没有转义。

追问

双引号 单引号 冒号 间隔号 大于小于号 空格 正反斜杠 都试验了。

最后发现了是单引号的问题。

^ ^

追答

我没看见你的插入语句,不知道你是什么语言写的,一般方法是利用转义。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-04-17
HTML代码会有标签,有的标签用单引号,比如<image src='sdfsdfsdfsdfsd/sdfsd.jpg' >,mysql会将这里的数据变成'<image src=' sdfsdfsdfsdfsd/sdfsd.jpg '>' 肯定是不行的,需要处理,具体转义还是把单引号都变成双引号看你自己需求了
相似回答