今天向新建的表中添加內容,出現以下錯誤:
mysql> INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('R510VC 15.6英寸筆記本','筆記本','華碩','3399',DEFAULT,DEFAULT);
ERROR 1366 (HY000): Incorrect string value: '\xE8\x8B\xB1\xE5\xAF\xB8...' for column 'goods_name' at row 1
在網上找到了解決方法,親測有效。
出錯原因:檢查數據庫此字段的字符集與整理字符集是否與SQL語句傳遞數據的字符集相同;不相同則會引發MySQL1366錯誤。
解決方法:
#1.檢查數據表所有字段的狀態
mysql> SHOW FULL COLUMNS FROM tdb_goods;

#2.發現collatioin項非utf8,需要進行修改,使用如下的語句
mysql> alter table tdb_goods change goods_name name varchar(100) character set utf8 collate utf8_unicode_ci not null default '';
mysql> alter table tdb_goods change goods_cate cate varchar(40) character set utf8 collate utf8_unicode_ci not null default '';
mysql> alter table tdb_goods change brand_name bname varchar(40) character set utf8 collate utf8_unicode_ci not null default '';
#3.檢查數據表所有字段的狀態
mysql> SHOW FULL COLUMNS FROM tdb_goods;

將想要插入的內容插入以后,得到想要的表:

