• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql为啥不能插入数据

php 搞代码 4年前 (2022-01-24) 60次浏览 已收录 0个评论

mysql为何不能插入数据?
安装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字段的值?为何无法更新?谢谢啦~~~

——解决方案——————–
你 #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 1112本文来源gao*daima.com搞@代#码&网6

搞gaodaima代码

110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U+7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

豫 的gbk二进制内码为 11010100 10100101
正好符合 U+07FF 编码规则,所以他就不会报错


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql为啥不能插入数据

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址