全部改成utf8了还是报错、网上搜了很多,修改了还是报错,求助各路大神!感谢!
php插入数据报错
插入前的编码格式
数据库结构格式
插入数据的代码
全部改成utf8了还是报错、网上搜了很多,修改了还是报错,求助各路大神!感谢!
php插入数据报错
插入前的编码格式
数据库结构格式
插入数据的代码
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
看你的代码,在创建表时候没有给表设置字符集,导致存入汉字失败,或者存进去乱码等问题。
建议给表设置默认字符集,具体SQL如下:
给表
userinfo
设置字符集 utf8_general_ci,也可用其他字符集ALTER TABLE
userinfo
CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;完了建议查看一下表结构: SHOW CREATE TABLE
userinfo
;如果还不行,就给每个字段都设一遍字符集:
例如:修改type的字符集
ALTER TABLE
userinfo
CHANGE type type VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;最后如果还不行,就重新建表吧!
SQL附上:
CREATE TABLE
user_info
(id
int(10) NOT NULL AUTO_INCREMENT COMMENT 'ID' ,type
char(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '类型' ,res
char(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '什么鬼?' ,date
char(40) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '这又是什么?' ,contact
char(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'o(>ω<)o' ,phone
bigint(12) NOT NULL DEFAULT 0 COMMENT '手机' ,qq
bigint(13) NOT NULL DEFAULT 0 COMMENT 'QQ' ,PRIMARY KEY (
id
))
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_unicode_ci
COMMENT='用户详情表'
AUTO_INCREMENT= 1
ROW_FORMAT=COMPACT;