【簡単解決】WordPressで絵文字が使えない!「データベースが更新されませんでした」エラーの原因と対処法

この記事を書いた人:青山
Web制作エンジニアマーケター(広告・SEO・アクセス計測・改善提案)・ライター
  • クリニック・金融・ECなど、様々な業種のSEO運用
  • D2C販売/リード獲得(Google/Meta広告など、幅広い媒体の取り扱い実績あり)
  • サイトの立ち上げディレクション〜コーディングまで対応
  • 自社メディア複数立ち上げ・Kindle出版
  • 企業メディアの運営支援、ライティング
  • 100社以上の計測・分析と改善提案
学ぶだけで終わらせない。実務で成果に変える学びをメルマガで配信中。

WordPressで記事を書いていて、
ふと絵文字を入れた瞬間。

データベースが更新されませんでした」というエラーが表示されて、投稿の更新ができなくなる。

この記事は、そんな突然のエラーに悩まされた方に向けた解決記事です。

実際、私自身もサーバー移管後にこの問題に直面しました。

以前は普通に絵文字を使えていたのに、サーバーを変えた途端、記事を更新すると「データベースが更新されませんでした」と表示され、更新できなくなるエラーが発生。

調べていく中でわかったのは、MySQLの文字コードと照合順序の設定に原因があるということでした。

この記事では、このエラーが起こる仕組みと、誰でも実行できる解決手順を、ステップ形式で解説します。

目次

なぜエラーが起きるのか?原因はデータベースの文字コード

WordPressで絵文字を使ったときに「データベースが更新されませんでした」というエラーが出る原因のひとつは、データベースの「照合順序(collation)」が古い形式になっていることです。

具体的には、utf8とutf8mb4(utf8mb3)の違いについてです。

utf8(=utf8mb3)

  • 実際には「utf8mb3」という3バイト形式の旧仕様
  • 古い文字や一部の白黒絵文字は保存できる
  • 最新のカラフルな絵文字や複雑な記号は保存できない
  • 保存できないデータを無理に入れようとすると、エラーになる

utf8mb4

  • utf8を拡張した4バイト対応の文字コード
  • 新しい絵文字を含め、より多くの文字に対応可能
  • WordPress公式でも推奨されている設定

utf8mb3_general_ciになっていたテーブル(私の場合)

  • wp_commentmeta
  • wp_comments
  • wp_links
  • wp_options
  • wp_postmeta
  • wp_posts
  • wp_termmeta
  • wp_terms
  • wp_term_relationships
  • wp_term_taxonomy

これらは、WordPressの投稿、コメント、設定などに関わる重要なテーブルです。

これらをutf8mb4_unicode_ciに統一することで、絵文字を使用できるようになりました。

解決策:データベースの文字コードをutf8mb4に変更する

ここからは、実際に私が行った解決手順をステップ形式で紹介します。

ステップ1:データベースのバックアップを取る

まず最初に、必ずバックアップを取りましょう。

下手したらサイト全体が壊れる可能性も考えられるので、最悪の場合に備えてバックアップを取りましょう。

これはデータベースに限らずですが、テーマ編集など、サイト全体に影響を及ぼす可能性のあるものを編集する場合には、必ずバックアップを取る癖をつけておきましょう。

【手順】

  1. サーバーの管理画面から「phpMyAdmin」にログイン
  2. 左側から対象のデータベースを選択
  3. 上部メニューの「エクスポート」をクリック
  4. エクスポート方法は「簡易」を選択
  5. フォーマットは「SQL」のまま「実行」ボタンをクリック

データベースの仕様などは一部違いがあるかもしれませんが、やること自体は同じです。

これで、現在のデータベースの状態を保存したファイルがダウンロードされます。

これで万が一うまくいかなかったとしても、元に戻すことができます。

ステップ2:テーブルの照合順序が古い文字コードになっているものを探す

該当のデータベースを選択すると、テーブル一覧が表示されます。

照合順序という項目があるので、その欄に記載されている文字コードをチェックしましょう。

ステップ3:テーブルの照合順序をutf8mb4_unicode_ciに変換

【手順】

  1. 該当のデータベースを選択
  2. 古い文字コードになっているテーブルにチェックを入れて、下部の方にある「選択したテーブルを」というドロップダウンメニューをクリック→テーブルを編集で照合順序を変更します。

上記メニューが表示されない場合

再びphpMyAdminにアクセスし、データベースを選択

  1. 該当のデータベースを選択
  2. 上部メニューの「SQL」タブを開き、以下のコマンドを入力して「実行」
ALTER TABLE wwww_commentmeta CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE www_comments CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

※www_の部分はテーブル接頭辞になるので、人それぞれ異なります。ご自身のテーブルに合わせてください。
※該当するテーブル全てを上記の規則性にならって追加してください。

実行後に「返り値が空でした」と表示されたら成功です。

設定変更後の確認方法

ここまで終えたら、WordPressの投稿画面で絵文字を入力して更新ボタンを押してみましょう。

例:🌟😊✨🎉🚀

エラーが出ず、正常に保存・公開できれば成功です。

もしうまくいかない場合は:

  • ブラウザのキャッシュを削除
  • キャッシュ系プラグインを無効化
  • 旧エディタ・ブロックエディタの切り替え
  • テーマやプラグインの競合を一時的に無効化して確認

なども検討してみてください。

まとめ

  • WordPressで絵文字が使えない場合、「データベースが更新されませんでした」というエラーの主因は、古い文字コード(utf8mb3)にある可能性がある。
  • WordPressで絵文字を安全に使うには、utf8mb4(照合順序は utf8mb4_unicode_ci)への変更が必要。
  • 古い文字コードのテーブルが混ざっている可能性もある
  • phpMyAdmin内で文字コードを修正することで絵文字が使えるようになる
  • バックアップは必須

絵文字が使えるようになると、
記事をキャッチーにすることができます。

もしも「絵文字を使いたいのに使えない」という状況なら、ぜひこの方法を試してみてください😊✨🎉😊✨🎉😊✨🎉😊✨🎉

学ぶだけで終わらせない。実務で成果に変えるメルマガ
明日から使えるコーディング、ディレクション、広告・SEO・など、
実務ベースのノウハウをお届けします。
メルマガ詳細を見る
もしよろしければシェアお願いいたします。
目次