1.问题:
使用python3 进行数据库插入报以下错误:
(1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
2.排查:
数据连接已经是utf-8;再一看,发现mysql的字段为latin类型
因此可以判断是表创建时字符类型默认类型为latin1
3.解决:
在创建表格时甚至默认类型: DEFAULT CHARSET=utf8,如下:
'create table sobook(book_id int not null auto_increment PRIMARY KEY, name varchar(255),author varchar(255),book_format varchar(255),preview_count varchar(255),tag varchar(255),publish_time varchar(255),dbpf varchar(255),isbn varchar(255),file_name varchar(255), file_size varchar(255),icon_url varchar(255), book_describe text, book_type varchar(255),author_des_id int,FOREIGN KEY (author_des_id) REFERENCES authorbg(author_des_id)) DEFAULT CHARSET=utf8 '
即可解决表类型与插入的字符串编码不同的问题。