mysql为啥不能插入数据

Jun 13, 2016 am 11:19 AM
cars mysql nbsp

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 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U+7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

豫 的gbk二进制内码为 11010100 10100101
正好符合 U+07FF 编码规则,所以他就不会报错
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのビッグデータ構造処理スキル PHPのビッグデータ構造処理スキル May 08, 2024 am 10:24 AM

PHPのビッグデータ構造処理スキル

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? Jun 03, 2024 pm 08:11 PM

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか?

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? Jun 03, 2024 pm 12:19 PM

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか?

テスラ、2025 年後半までに生産開始予定の今後のセミファクトリーを垣間見る テスラ、2025 年後半までに生産開始予定の今後のセミファクトリーを垣間見る Jul 30, 2024 pm 02:35 PM

テスラ、2025 年後半までに生産開始予定の今後のセミファクトリーを垣間見る

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? Jun 02, 2024 pm 02:26 PM

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか?

データベースにおける Java 列挙型のアプリケーション シナリオは何ですか? データベースにおける Java 列挙型のアプリケーション シナリオは何ですか? May 05, 2024 am 09:06 AM

データベースにおける Java 列挙型のアプリケーション シナリオは何ですか?

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 Dec 09, 2024 am 11:42 AM

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? Jun 02, 2024 pm 02:13 PM

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか?

See all articles