关于数据库编码问题导致的插入中文字符失败

来源:7-5 图书录入功能 - 添加图书功能完成

fengyunzhu

2018-05-22

报错Incorrect string value:

写回答

2回答

慕瓜8449030

2018-05-23

或者用server/tools里面我给大家准备的sql

-- show create table books 

DROP TABLE IF EXISTS `books`;

CREATE TABLE `books` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`isbn` varchar(20) NOT NULL,
`openid` varchar(100) NOT NULL,
`title` varchar(100) NOT NULL,
`image` varchar(100) NOT NULL,
`alt` varchar(100) NOT NULL,
`publisher` varchar(100) NOT NULL,
`summary` varchar(1000) NOT NULL,
`price` varchar(100) DEFAULT NULL,
`rate` float DEFAULT NULL,
`tags` varchar(100) DEFAULT NULL,
`author` varchar(100) DEFAULT NULL,
`count` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `comments`;

CREATE TABLE `comments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`openid` varchar(100) NOT NULL,
`bookid` varchar(100) NOT NULL,
`comment` varchar(200) NOT NULL,
`phone` varchar(20) DEFAULT NULL,
`location` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;


0
1
fengyunzhu
非常感谢!
2018-05-23
共1条回复

fengyunzhu

提问者

2018-05-22

设置数据库编码为中文

可能需要用到的命令

查看数据库编码方式的两个命令

1.status

2.show variables like 'character%'; 

+--------------------------+----------------------------+ 

| Variable_name | Value | 

+--------------------------+----------------------------+ 

| character_set_client | latin1 | 

| character_set_connection | latin1 | 

| character_set_database | latin1 | 

| character_set_filesystem | binary | 

| character_set_results | latin1 | 

| character_set_server | latin1 | 

| character_set_system | utf8 | 

| character_sets_dir | /usr/share/mysql/charsets/ | 

设置编码的命令

  1. set names utf8 (设置客户端的编码格式,会给其中的三项设置为utf-8)

2.分别给每项设置编码

set character_set_connection = 'utf8';

set character_set_results = 'utf8';

set character_set_client = 'utf8';

单独给服务端设置编码

set character_set_server = 'utf8';

给表设置编码

alter table books default character set 'utf8';

给数据库设置编码

alter database cAuth default character set 'utf8';

网上搜有说设置为gbk的,但是我觉得最好还是用utf8

如果以上方法都试过还不行,那就删除表重新建,再建表的时候加一句设置编码

create table books(

id int not null auto_increment primary key,

isbn varchar(20) not null,

openid varchar(50) not null,

title varchar(100) not null,

image varchar(150) ,

alt varchar(100) not null,

publisher varchar(50) not null,

summary varchar(1000) not null,

price varchar(100) ,

rate float,

tags varchar(100),

author VARCHAR(100)

)default character

set utf8;

我的重建表之后就可以了

另外

安装目录下找到 my.ini

default-character-set=utf8 

我的文件里没搜到这个


0
2
fengyunzhu
回复
大文1991
不用客气
2018-05-31
共2条回复

mpvue课程小程序全栈开发

慕课网独家首发 学习mpvue+Koa+vue 全栈开发小程序

1407 学习 · 1331 问题

查看课程