mysql为何不能插入数据?

sxldfang 2013-03-31 10:22:36
安装AppServ后首次使用mysql,没有图形界面,在“MySql Command Line Client”的操作如下:
======================================================================================
mysql> create database cars;
Query OK, 1 row affected (0.00 sec)

mysql> use cars;
Database changed
mysql> create table cars(id int,xm char(8),h char(8),vin char(20));
Query OK, 0 rows affected (0.06 sec)

mysql> insert into cars(id,xm,h,vin) values(1,'廉东方','豫A5F568','LDC666L2980790000');
Query OK, 1 row affected, 1 warning (0.02 sec)

mysql> select * from cars;
+------+------+----------+-------------------+
| id | xm | h | vin |
+------+------+----------+-------------------+
| 1 | | 豫A5F568 | LDC666L2980790000 |
+------+------+----------+-------------------+
1 rows in set (0.02 sec)

mysql> select xm from cars;
+------+
| xm |
+------+
| |
+------+
1 rows in set (0.00 sec)

mysql> update cars set xm='廉' where id=1;
Query OK, 0 rows affected, 1 warning (0.01 sec)
Rows matched: 1 Changed: 0 Warnings: 0

为何不能设置xm字段的值?为何无法更新?谢谢啦~~~
...全文
421 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxldfang 2013-03-31
  • 打赏
  • 举报
回复
谢谢您的耐心回答,收获匪浅~~~
xuzuning 2013-03-31
  • 打赏
  • 举报
回复
你 #1 的内容是我在#3回复后才看到的,不然一开始就解释了 \xC1\xAE\xB6\xAB\xB7\xBD 是 廉东方 的gbk 内码 而他却报错了,这说明你的数据库的默认字符集不是 latin1 的,也不是 gbk 的 那么对中文报错就只能是 utf8 的了(极少有人用 ucs-2 的,就算是也没关系) 对 utf8 字段插入 gbk 字符当然就要报错了 所以要 set names gbk 通知 mysql 现在用的是 gbk 字符 那么“豫”为什么没有报错呢? 这就要看 utf-8 是如何编码的了: U+007F 0xxxxxxx U+07FF 110xxxxx 10xxxxxx U+FFFF 1110xxxx 10xxxxxx 10xxxxxx U+1FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx U+3FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx U+7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 豫 的gbk二进制内码为 11010100 10100101 正好符合 U+07FF 编码规则,所以他就不会报错
sxldfang 2013-03-31
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
先执行 set names gbk; 应该就可以了
刚才查资料,有的说用:set names utf8;经测试不行, 但“set names gbk;”确实成功了,非常感谢! 能简单说一下为什么吗?
xuzuning 2013-03-31
  • 打赏
  • 举报
回复
先执行 set names gbk; 应该就可以了
sxldfang 2013-03-31
  • 打赏
  • 举报
回复
电脑安装的是win7操作系统~~~
sxldfang 2013-03-31
  • 打赏
  • 举报
回复
刚开始学php,嫌配置麻烦,下个 appserv-win32-2.6.0.exe 直接安装的。 难道它安装的不合理?
xuzuning 2013-03-31
  • 打赏
  • 举报
回复
mysql> insert into cars(id,xm,h,vin) values(1,'廉东方','豫A5F568','LDC666L298079 0000'); Query OK, 1 row affected (0.00 sec) mysql> select * from cars; +------+--------+----------+-------------------+ | id | xm | h | vin | +------+--------+----------+-------------------+ | 1 | 廉东方 | 豫A5F568 | LDC666L2980790000 | +------+--------+----------+-------------------+ 1 row in set (0.00 sec) 说一下你用的什么操作系统
sxldfang 2013-03-31
  • 打赏
  • 举报
回复
mysql> set names utf-8; ERROR 1115 (42000): Unknown character set: 'utf' mysql> set names utf8; Query OK, 0 rows affected (0.00 sec) mysql> update cars set xm='廉' where id=1; Query OK, 0 rows affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0 Warning (Code 1366): Incorrect string value: '\xC1\xAE' for column 'xm' at row 1 mysql> _ 还是不行,快急死了~~~
sxldfang 2013-03-31
  • 打赏
  • 举报
回复
mysql> \W Show warnings enabled. mysql> update cars set xm='廉东方' where id=1; Query OK, 0 rows affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0 Warning (Code 1366): Incorrect string value: '\xC1\xAE\xB6\xAB\xB7\xBD' for colu mn 'xm' at row 1 mysql> _ 这里看插入数据的长度是6个字节,不到设计的8个字节,怎么就错了呢?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧