首页 信息互联🚀

最近写文章的时候用到了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);



文章评论

    雪山凌狐 访客ChromeWindows
    2020-11-26 12:05   回复

    亲测成功,感谢!

    yitzu 访客ChromeWindows
    2020-10-1 13:37   回复

    怎么进入数据库运行啊,进入数据库在哪运行啊

      枫叶 访客ChromeWindows
      2021-01-8 17:45   回复

      我也想问,数据库里找了好一会儿都没找到。
      谷歌也没谷歌到东西。

        Veen Zhao 站长ChromeWindows
        2021-01-8 19:19   回复

        有个控制台,进入后直接执行相关命令就行了

    小邯郸 访客ChromeWindows
    2020-08-27 19:40   回复

    这个原因就是因为utf8在mysql里面不是真正的utf8,这个只能保存3个字节,而utf8mb4是后面更新的,能保存四个字节,而且官方也没有更新这个的说明。麻蛋,我开发选的utf8,保存表情死都保存不上。最后才懂。搞我。

    571 访客ChromeWindows
    2020-03-11 9:47   回复

    我这么做了也没用呀,用的chrome,这么弄了还是方框

      Veen Zhao 站长ChromeWindows
      2020-03-11 9:57   回复

      其他浏览器正常吗?先排查是不是浏览器问题

        571 访客ChromeWindows
        2020-03-15 16:29   回复

        换了浏览器也一样的显示不出来