search
HomeBackend DevelopmentPHP Tutorialmysql为何不能插入数据?

安装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>  \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个字节,怎么就错了呢?


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>  _


还是不行,快急死了~~~


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)


说一下你用的什么操作系统

刚开始学php,嫌配置麻烦,下个 appserv-win32-2.6.0.exe 直接安装的。

难道它安装的不合理?

电脑安装的是win7操作系统~~~

先执行 set names gbk; 应该就可以了

先执行 set names gbk; 应该就可以了

刚才查资料,有的说用:set names utf8;经测试不行,

但“set names gbk;”确实成功了,非常感谢!

能简单说一下为什么吗?

你 #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 编码规则,所以他就不会报错

谢谢您的耐心回答,收获匪浅~~~

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
PHP Dependency Injection Container: A Quick StartPHP Dependency Injection Container: A Quick StartMay 13, 2025 am 12:11 AM

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Dependency Injection vs. Service Locator in PHPDependency Injection vs. Service Locator in PHPMay 13, 2025 am 12:10 AM

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHP performance optimization strategies.PHP performance optimization strategies.May 13, 2025 am 12:06 AM

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHP Email Validation: Ensuring Emails Are Sent CorrectlyPHP Email Validation: Ensuring Emails Are Sent CorrectlyMay 13, 2025 am 12:06 AM

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

How to make PHP applications fasterHow to make PHP applications fasterMay 12, 2025 am 12:12 AM

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

PHP Performance Optimization Checklist: Improve Speed NowPHP Performance Optimization Checklist: Improve Speed NowMay 12, 2025 am 12:07 AM

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

PHP Dependency Injection: Improve Code TestabilityPHP Dependency Injection: Improve Code TestabilityMay 12, 2025 am 12:03 AM

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

PHP Performance Optimization: Database Query OptimizationPHP Performance Optimization: Database Query OptimizationMay 12, 2025 am 12:02 AM

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment