您的位置:首页 > 其它

在dos命令行里面INSERT中文总是报错解决办法

2014-11-16 22:04 78 查看
首先创建一个叫tdb_goods的数据表

1、-- 创建数据表

CREATE TABLE IF NOT EXISTS tdb_goods(

goods_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

goods_name VARCHAR(150) NOT NULL,

goods_cate VARCHAR(40) NOT NULL,

brand_name VARCHAR(40) NOT NULL,

goods_price DECIMAL(15,3) UNSIGNED NOT NULL DEFAULT 0,

is_show BOOLEAN NOT NULL DEFAULT 1,

is_saleoff BOOLEAN NOT NULL DEFAULT 0

);

OK,表创建的没有问题

2、接着往表里面写数据

先写一个字段试试

INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('R510VC 15.6英寸笔记本','笔记本','华硕','3399',DEFAULT,DEFAULT);

敲回车键,结果总是得在报同样的错误,错误总是在提示goods_name不对,找了半天请光哥这尊大神,经过一番折腾终于找出问题,是因为test库的编码方式是latin的而不是utf8的,需要进入数据库从开始菜单里面选择MySQL-front然后打开进入mysql数据表,因为tdb_goods这个表是建在test这个库上的,所以进入mysql后在test这个库上右击然后属性,然后字符集这一项改成utf8这一项即可。

把dos命令行关闭以后,再重新 net start mysql 然后mysql -uroot -proot,然后USE test,即在test库里面要建立这个表格,再把创建数据库的命令输入一遍,在MySQL-front中也属性设置了utf8,写了一行数据,仍然显示goods_name不对,这该如何是好? 经过光哥一番指导,是dos命令行里面也得设置gbk,即在命令行里面设置SET
NAMES gbk;指的是在客户端的显示数据,影响的只是客户端的显示数据,而不影响数据库里面的数据。

这回真完事了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: