直接上图:
mysql的编码是utf8
                                                    |
+-------+----------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
----------------------------------------------------+
| user  | CREATE TABLE `user` (
  `user_id` int(11) NOT NULL auto_increment,
  `description` varchar(50) default NULL,
  `password` varchar(255) default NULL,
  `status` int(11) NOT NULL,
  `username` varchar(255) default NULL,
  PRIMARY KEY  (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
----------------------------------------------------+插入一条中文记录后,显示成功
mysql> insert into user values(3,'用户','user',1,'lml');
Query OK, 1 row affected, 1 warning (0.22 sec)但是不知道为啥,插入中文对应的那个字段一直是空!!!mysql> select * from user;
+---------+-------------+----------+--------+----------+
| user_id | description | password | status | username |
+---------+-------------+----------+--------+----------+
|       1 |             | admin    |      1 | admin    |
|       2 |             | user     |      1 | user     |
|       3 |             | user     |      1 | lml      |
|       4 | test        | user     |      1 | waylon   |
+---------+-------------+----------+--------+----------+

解决方案 »

  1.   

    把字段description改为其它名字,比如description2试试。mysql有系统保留字,有些单词不能做为字段名。
      

  2.   

    在执行SQL语句之前 先set names utf8
    试试
      

  3.   

    谢谢,不过我试了其他字段,还是不行
    mysql> insert into user values (1,'你好');
    Query OK, 1 row affected, 1 warning (0.08 sec)mysql> select * from user;
    +----+------+
    | id | des  |
    +----+------+
    |  1 |      |
    +----+------+
    1 row in set (0.00 sec)
      

  4.   

    你数据库的问题?我怎么可以~mysql> CREATE TABLE `user` (
        ->   `user_id` int(11) NOT NULL auto_increment,
        ->   `description` varchar(50) default NULL,
        ->   `password` varchar(255) default NULL,
        ->   `status` int(11) NOT NULL,
        ->   `username` varchar(255) default NULL,
        ->   PRIMARY KEY (`user_id`)
        -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Query OK, 0 rows affected (0.01 sec)mysql> nsert into user values(3,'用户','user',1,'lml');
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'nsert into user values(3,'用户','user',1,'lml')' at line 1
    mysql> insert into user values(3,'用户','user',1,'lml');
    Query OK, 1 row affected (0.00 sec)mysql> select * from user;
    +---------+-------------+----------+--------+----------+
    | user_id | description | password | status | username |
    +---------+-------------+----------+--------+----------+
    |       3 | 用户      | user     |      1 | lml      |
    +---------+-------------+----------+--------+----------+
    1 row in set (0.00 sec)