在开发中我遇到两个现象: 
1. content 字段在 mysql 的数据类型定义为 varchar(2000),但是表单提交过来的数据是 3674.数据库在 insert 的时候并没有报错,而是自动截取了。 
2. mysql 的数据类型定义为 varchar(4000),应用没有重启还是会自动截取。
那么问题来了,这个是 php 处理的呢还是 mysql 处理的?
|      1ben548 OP 额,自问自答一下吧, | 
|      2ben548 OP 自问自答一下,经过测试证实是 mysql 做的处理,另外修改字段长度之后不需要重启就能立即生效。。。我好傻 | 
|  |      3better0332      2015-12-17 17:22:03 +08:00 你查查 varchar 最大长度是多少 | 
|      4ben548 OP @better0332 65535 个字节,字符类型若为 gbk ,每个字符最多占 2 个字节,最大长度不能超过 32766; 字符类型若为 utf8 ,每个字符最多占 3 个字节,最大长度不能超过 21845 。这个跟问题的关联在哪里啊? | 
|  |      5moro      2015-12-17 17:36:56 +08:00 修改字段类型为 text | 
|      6ben548 OP 结贴啦,问题已经解决了 | 
|  |      7Zzzzzzzzz      2015-12-17 17:52:29 +08:00 @ben548  你这是 mysql<=4.0 时代没编码时期按字节算时代的东西, 现在设置编码正确的话 n 就是 n 个字, 不管是中文还是英文, 除非你编码设置错,  不过原则上不建议 varchar 超过 255. | 
|  |      8elgoog1970      2015-12-17 22:04:19 +08:00 为啥不用 text 呢 |