最近写文章的时候用到了emoji,发现报错:Database Query Error
解决办法
1、进入数据库,直接运行下列语句:
alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_metas convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_options convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_relationships convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_users convert to character set utf8mb4 collate utf8mb4_general_ci;
2、修改数据库的配置文件
网站根目录数据库配置文件config.inc.php
,大约在60行
/** 定义数据库参数 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
...
'charset' => 'utf8mb4', // 将原来的utf8修改为 utf8mb4
...
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);
亲测成功,感谢!
怎么进入数据库运行啊,进入数据库在哪运行啊
我也想问,数据库里找了好一会儿都没找到。
谷歌也没谷歌到东西。
有个控制台,进入后直接执行相关命令就行了
这个原因就是因为utf8在mysql里面不是真正的utf8,这个只能保存3个字节,而utf8mb4是后面更新的,能保存四个字节,而且官方也没有更新这个的说明。麻蛋,我开发选的utf8,保存表情死都保存不上。最后才懂。搞我。
我这么做了也没用呀,用的chrome,这么弄了还是方框
其他浏览器正常吗?先排查是不是浏览器问题
换了浏览器也一样的显示不出来