安装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字段的值?为何无法更新?谢谢啦~~~
======================================================================================
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字段的值?为何无法更新?谢谢啦~~~
解决方案 »
- php 数据库连接性能问题
- 这个问题:对不起,请将 php.ini 中的 short_open_tag 设置为 On,否则无法继续安装论坛。
- curl 获取 POST 文件流 和 <form> 返回的值不同
- 急!php打印预览功能,及打印分页的实现?
- 如何多行显示?
- $PATH_INFO和$PATH_SELF?
- 怎么在php中把Acrobat Reader(即pdf格式文件)嵌套到页面里呢
- PHP操作MYSQL时数据被重复计算
- wemall模板微信商城token验证失败
- 这个config.php该怎么修改?
- php里有相当于Asp.Net中 CookieContainer的东西吗?
- 如何实现某一行文字首页不显示但是内页显示
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: 0Warning (Code 1366): Incorrect string value: '\xC1\xAE\xB6\xAB\xB7\xBD' for colu
mn 'xm' at row 1
mysql> _这里看插入数据的长度是6个字节,不到设计的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: 0Warning (Code 1366): Incorrect string value: '\xC1\xAE' for column 'xm' at row 1mysql> _
还是不行,快急死了~~~
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)
说一下你用的什么操作系统
刚才查资料,有的说用:set names utf8;经测试不行,但“set names 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 编码规则,所以他就不会报错