insert into dcr_data(cardid,zcid,czmoney,fcbl,tc) values('m10515993755','尛丶羙','0','1','0') mysql提示错误为:Data too long for column 'zcid' at row 1 zcid为:VARCHAR(50) 为什么会说太长了?我的表用了gb2312 但用gbk也没用 utf8也没用 

解决方案 »

  1.   

    我的表用了gb2312 那你需要 set names 'gb2312'; 一下。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  2.   

    插入数据['m10583548748','大蒜头2','15','1','15']成功,
    插入的sql语句为:insert into dcr_data(cardid,zcid,czmoney,fcbl,tc) values('m10583548748','大蒜头2','15','1','15')插入数据['m10522986068','小不點灬','15','1','15']失败,mysql提示错误为:Data too long for column 'zcid' at row 1
    插入的sql语句为:insert into dcr_data(cardid,zcid,czmoney,fcbl,tc) values('m10522986068','小不點灬','15','1','15')
      

  3.   

    show variables like 'char%';
    show create table dcr_data;提供你的信息。
      

  4.   

    如果你的表(或者zcid字段)是utf8的,你的连接也是utf8,就不应当有问题。
      

  5.   

    mysql> show variables like 'char%';
    +--------------------------+----------------------------------------------------
    ---+
    | Variable_name            | Value
       |
    +--------------------------+----------------------------------------------------
    ---+
    | character_set_client     | gbk
       |
    | character_set_connection | gbk
       |
    | character_set_database   | gbk
       |
    | character_set_filesystem | binary
       |
    | character_set_results    | gbk
       |
    | character_set_server     | gbk
       |
    | character_set_system     | utf8
       |
    | character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5\share\charset
    s\ |
    +--------------------------+----------------------------------------------------
    ---+
    表格式为:
    CREATE TABLE  `tg`.`dcr_data` (
      `id` int(10) NOT NULL auto_increment,
      `cardid` varchar(50) character set gb2312 NOT NULL default '',
      `zcid` varchar(50) character set gb2312 NOT NULL default '',
      `czmoney` double NOT NULL default '0',
      `fcbl` double NOT NULL default '0',
      `tc` double NOT NULL default '0',
      `addtime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
      

  6.   

    谢谢ACMAIN_CHM 这样就知道字符集对不上了