成功解决data too long for column 'name' at row 1
来源:互联网 发布:药店销售数据分析 编辑:程序博客网 时间:2024/05/17 23:54
在程序中写了一段代码向数据库中插入数据,出现了data too long for column 'name' at row 1的问题。在google搜了一下解决方法,真是五花八门,也逐一试了一遍,终于终于将问题解决了。
下面先贴一下网上的众多解决
1、修改my.ini文件:
将sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION注释掉,ok!
2、修改数据库编码为utf8,jsp,servlet编码转换为utf8存入
3、只知道是中文处理的问题,但不知道如何改.最好的方法是把字段定得长一些
4、把mysql的字符集设为utf8(通过修改my.ini,把所有的latin1改为utf8)并且通过show variables like '%char%';
5、以前我也遇到过类似的情况,我的建议:在装数据库的时候把你的字符集设置为gb2312,然后你建表的时候,汉字默认都是gb2312在连接数据库的时候不要写成characterEnconding=true&charset=gb2312,把这个去掉。然后在连接的时候写c最好用gbk,gb2312对某些不常见的字符会出现Data too long for column,比如“珺”字等,至于数据库,只有默认的字符集是gb2312或者gbk或者utf8都没什么问题
对于我这里的情况也简要描述下,我的mysql把server端,client端,connection的字符设置都为gbk,在控制太插入中文字没有问题,但是从程序里面插入中文字就存在问题了。
用第一种方法试了下,不行。
用将所有的编码格式改为utf8,以前数据库里面的中文字全变成了乱码,第二种方法也不行
第3种方法,我将数据库里面的name设为varchar(255)这是足够大的,可以存125个汉字了,还是不行,即使是存一个汉字也会报Data too long for column的错误,因此第3种方法显然是瞎掰。
用第四种方法试了下,也这是提供你信息,你的数据库各个端都采用什么编码方式,并不能解决问题
最后试了第五种方法,没有完全按照它所说的做,在插入数据库之前先执行stat.execute("set names gb2312");就能成功将中文字插入到数据库中。
这是为什么了?在采用第四种方式时,得到这样的信息+--------------------------+---------------------------------------------------------+| Variable_name | Value |+--------------------------+---------------------------------------------------------+| character_set_client | gbk || character_set_connection | gbk || character_set_database | gbk || character_set_results | gbk || character_set_server | gbk || character_set_system | utf8 || character_sets_dir | C:/Program Files/MySQL/MySQL Server 5.0/share/charsets/ |+--------------------------+----------------------------------------------------说明我的系统编码方式与数据库的编码方式不符,用stat.execute("set names gb2312");将编码方式先改为gb2312方式,就可以解决这样的问题。
- 解决data too long for column 'name' at row 1
- 成功解决data too long for column 'name' at row 1
- 成功解决data too long for column 'name' at row 1
- 解决数据库 data too long for column 'name' at row 1的问题
- Data truncation: Data too long for column 'name' at row 1的处理
- Data truncation: Data too long for column 'name' at row 1
- SSH - Data truncation: Data too long for column 'name' at row 1
- java-mysql异常<Data truncation: Data too long for column 'name ' at row 1>讨论
- Data truncation: Data too long for column 'name' at row 1
- mysql 数据库 错误 Data truncation: Data too long for column 'name' at row 1
- ### Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column \'name\' at row 1
- java-mysql异常<Data truncation: Data too long for column 'name ' at row 1>讨论
- Data too long for column 'name' at row 1 mysql的抛出异常的解决办法
- jdbc 连mysql 时报 Data too long for column 'name' at row 1 错误
- data too long for column 'name' at row 1的解决办法
- data too long for column 'Auser' at row 1
- data too long for column 'spath' at row 1
- Data too long for column 'sex' at row 1
- 人生哲理故事
- 码率、帧率,what mean?
- Ext.extend用法以及代码解读
- SOA不是万能钥匙 管理方法最重要
- javascript 整型数字 校验
- 成功解决data too long for column 'name' at row 1
- 说话如何才能不得罪人
- asp.net后台长时间操作时,向前台输出“请等待"信息的方法
- SQL 流程控制语句 之一 IF…ELSE语句
- SQL数据库,日志文件被删除或破坏后,重建方法
- 显示隐藏网页中的模块
- Web缓存技术概述
- PHP - Smarty模板引擎 - Manual手册 - 翻译中 - 第13章 Smarty类方法 - register_function()动态注册模板函数插件
- JSP和Struts解决用户退出问题