ウェブサイトを作成していると、ファイルのアップロードが必要になります。その際、「データベースに添付ファイルを挿入できませんでした」というエラーが発生することも。このエラーが発生すると、アップロードしようとした画像などはサイトに反映されません。

「WordPress could not insert attachment into the database(データベースに添付ファイルを挿入できませんでした)」というエラーは、多くの方法で解決できます。画像のサイズを変更したり、ファイル名を更新したりするだけで、新規アップロードに対するWordPressの要件を満たすことができるかもしれません。とは言え、サイトのメモリ制限を増やすなど、もう少し大規模な解決策が必要になることもあります。

この記事では、「WordPress could not insert attachment into the database(データベースに添付ファイルを挿入できませんでした)」エラーとは何か、そして、この問題を解決する8つの方法をご紹介します。それでは、はじめましょう。

「データベースに添付ファイルを挿入できませんでした」エラーとは

ウェブサイトをデザインする上で重要なのが、画像のアップロードです。オンラインで無料の写真を見つけた場合でも、その他グラフィックスを作成した場合でも、WordPressのメディアライブラリに追加することになります。これにより、すべてのメディアファイルが保存され、固定ページや投稿に挿入できるようになります。

WordPressメディアライブラリ
WordPressメディアライブラリ

さらに、他の種類のファイルをWordPressに追加する状況も考えられます。すべてが正しく機能していれば、文書、音声、動画などのファイルを投稿、固定ページ、メディアライブラリにアップロードできます。

WordPressにファイルをアップロードする
WordPressにファイルをアップロードする

しかし、画像やその他ファイルをアップロードする際に、エラーに遭遇することがあります。例えば「データベースに添付ファイルを挿入できませんでした」というメッセージです。主にアップロードの際に発生するものですが、新規投稿を公開できないケースもあります。

ほとんどの場合、このエラーは、サーバーが使用しようとしているリソースの量に対応できないことを意味します。共用サーバーを使用している場合には、他のウェブサイト(つまり、同じサーバーを共用している他のいずれかのサイト)に予想を上回るトラフィックが流入したことが原因かもしれません。

「WordPress could not insert attachment into the database(データベースに添付ファイルを挿入できませんでした)」エラーの他の原因として考えられるものをいくつか挙げておきます。

このエラーが発生すると、サイトで該当するファイルを使用することはできません。ページや投稿の編集を続けるには、問題を解決してファイルをアップロードしなおす必要があります。

「データベースに添付ファイルを挿入できませんでした」エラーの解決方法(8つの選択肢)

「WordPress Could not Insert Attachment into the Database(データベースに添付ファイルを挿入できませんでした)」エラーにより、ウェブサイトへのファイルのアップロードが停止してしまう可能性があります。メディアはウェブデザインの重要な要素なので、この問題を解決する方法を知っておく必要があります。

それでは、このWordPressの画像アップロードの問題を解決する方法をご紹介します。

1. 画像のサイズを変更する

WordPressに新しい画像をアップロードすると、これがサーバーのスペースを占有します。画像が大きすぎると、サーバーに割り当てられたリソースに過剰な負荷がかかる可能性があります。さらに、ページの読み込み時間が長くなる可能性もあります。

「Could not insert attachment into the database(データベースに添付ファイルを挿入できませんでした)」というエラーが表示される場合は、最大アップロードサイズを超過している可能性があります。WordPressのホスティングプロバイダーにもよりますが、これは通常4〜128MBです。

一般的なWordPressユーザーであれば、この制限を超えることはまずないはずです。しかし、写真ポートフォリオなどのメディアを多用するウェブサイトでは、アップロードエラーが発生することがあります。

まずは、画像サイズを調整してみてください。一般的に、WordPressの最大サイズは1024pxです。これより大きな画像をアップロードすることは避けるのが賢明です。

さらに画像を最適化するために、PNGJPEG(JPG)GIFファイルのみの使用をおすすめします。そうすることで、ファイルサイズが小さくても質の十分な画像になります。

さらに、すべての画像を圧縮することも重要です。WordPressでは自動で画像が圧縮されますが、これだけではファイルサイズを大幅に削減できないことがあります。

サーバーに負荷をかけないようにするには、EWWW Image Optimizerのような圧縮プラグインを使用するのが効果的です。画像の圧縮、サイズ変更、寸法調整などを自動で行うため、WordPressと相性の良い画像になります。

EWWW Image Optimizer
EWWW Image Optimizer

さらに、EWWW Image Optimizerは、画像に対して可逆圧縮と非可逆圧縮の両方を適用することができます。画像のファイルサイズが原因で「WordPressがデータベースに添付ファイルを挿入できませんでした」というエラーが発生する場合、このような圧縮を適用することで問題を解決できる可能性があります。

2. ファイル名を変更する

「WordPress could not insert attachment into the database(データベースに添付ファイルを挿入できませんでした)」エラーは、ファイル名を変更するだけで解決できることがあります。というのも、データベースの設定によっては、文字や照合順序によって特定のファイル名が使用できない場合があります。

このエラーが発生したのであれば、WordPressにアップロードしたファイルのMySQL データベースへの格納ができていません。デフォルトの設定で特殊文字を許可していない可能性があります。

この問題を解決するには、ファイル名を変更してみてください。不要な記号や句読点を削除してください。ダッシュやアンダースコアで区切られた単語を使用するのが得策です。

画像のファイル名
画像のファイル名

これを実行したら、ファイルを再びアップロードしてみてください。それでもうまくいかない場合は、次の方法に進んでください。

3. 競合するプラグインやテーマを無効化する

WordPressはオープンソースのプラットフォームなので、サードパーティの開発者が独自のテーマやプラグインを販売することができます。その中には、質が不十分で、サイト上の他のソフトウェアと競合するものがあります。

WordPressでエラーが発生した場合は、それがプラグインやテーマの競合に起因するものであるかどうかを評価することをお勧めします。まず、プラグインを一時的に停止してください。

有効なプラグインを選択し、「一括操作」メニューから「停止」を選択するだけでOKです。

すべてのWordPressプラグインを無効化する
すべてのWordPressプラグインを無効化する

そしてファイルを再度アップロードしてみてください。うまくいくようであれば、いずれかのプラグインが問題を引き起こしていることになります。

次に、プラグインを1つずつ再度有効化し、そのたびにファイルをアップロードしてみます。これにより、どのプラグインがエラーを引き起こしているかがわかります。

原因がわかったら、そのプラグインをサイトから削除するか、開発者に連絡して、この問題について伝えてください。

また、お使いのテーマが干渉を引き起こしている可能性もあります。Twenty Twenty-ThreeのようなWordPressのデフォルトテーマを有効にすることで、このケースに該当するかどうかをすぐに確認することができます。

これでエラーが解消されれば、別のテーマを使用してみましょう。しかし、ファイルアップロードの問題は、まったく別の問題から生じている可能性もあります。その際には、データベースのトラブルシューティングを行う必要があります。

4. データベースのサイズを確認する

ファイルをサポートするのに十分なサーバーリソースがないことで、WordPressに画像がアップロードできていない可能性もあります。これが原因であれば、データベースのサイズの確認から行いましょう。こうすることで、画像、動画、その他のファイルが消費しているディスク容量がわかります。

Kinstaのホスティングプランをご利用であれば、MyKinstaディスク使用量を簡単に確認することができます。これは、お客様のファイルとデータベースのリソースを組み合わせた数字になります。

アカウントにログインしたら、「WordPressサイト」タブをクリックしてください。そして、「ディスク使用量」の列を確認します。

MyKinstaでディスク使用量を確認する
MyKinstaでディスク使用量を確認する

リソースの使用量は、特定のサイトの「分析」セクションにも表示されます。「リソース」>「ディスク使用量」でストレージの上限と現在の使用状況を確認できます。

Kinstaのディスク使用量(上限と実際の使用量)
Kinstaのディスク使用量(上限と実際の使用量)

また、ダッシュボードからもこの情報を見ることができます。「リソースの使用状況」内「ディスク使用状況」の横にある「もっと詳しく」ボタン(「?」アイコン)をクリックしてください。

Kinstaのディスク使用量確認画面
Kinstaのディスク使用量確認画面

ポップアップで、ディスク使用量の内訳が表示されます。データベース、ファイルサイズ、総使用量が表示されます。

Kinstaリソース使用量の内訳
Kinstaリソース使用量の内訳

Kinstaをご利用でなければ代わりに、WordPress管理画面でこの情報を確認する方法もあります。「ツール」>「サイトヘルス」>「情報」に移動し、「ディレクトリとサイズ」を見つけます。

ここに、データベースサイズやディレクトリに関する情報が表示されます。

WordPressサイトヘルス(ディレクトリサイズなどを確認)
WordPressサイトヘルス(ディレクトリサイズなどを確認)

ディスク容量の使用量がサーバーにより設定された上限に迫っていれば、上位プランへのアップグレードが必要かもしれません。または、Kinstaであれば、ディスク容量アドオンを追加することができます。この方法では、プランを切り替えることなく、容量を引き上げられます。

5. PHPのメモリ制限を増やす

ファイルを保存するために、ウェブサイトにはメモリが必要です。ホスティングプランを選択すると、サーバー側によりお客様のサイトのPHPメモリ上限が決定されます。Kinstaでは、この上限を256MBに設定しています。

サイトが成長するに伴い、ファイル、プラグイン、テーマ、コードの追加が必要になります。そして、より多くのメモリが使用されます。上限に達すると、WordPressに新しいファイルを保存するだけの十分なメモリがなくなり、「WordPress could not insert attachment into the database(データベースに添付ファイルを挿入できませんでした)」エラーが発生する可能性があります。

WordPressサイトでファイルをアップロードできない時には、PHPのメモリ上限を引き上げてみるのも一つの手です。これには、wp-config.phpファイルを編集する必要があります。ただし、最初にサイトのバックアップを取ることをお勧めします。

次に、FileZillaのようなファイル転送プロトコル(FTP)クライアントを開いてください。これで、サイトのファイルにアクセスし編集します。

FileZilla
FileZilla

FileZillaを使用するには、SFTPのログイン認証が必要になります。MyKinstaで、「サイト」>「情報」に移動します。「SFTP/SSH」のセクションに表示されている、ホスト、ユーザー名、パスワード、ポートをコピーします。

MyKinstaのSFTPログイン認証情報
MyKinstaのSFTPログイン認証情報

ここで、FileZillaに戻り、「サイトマネージャ」を開いてください。「SFTP – SSH File Transfer Protocol」を選択し、ログイン情報を入力し「接続」をクリックします。

FileZillaでウェブサイトに接続する
FileZillaでウェブサイトに接続する

サイトに接続したら「リモートサイト」ボックスを探します。ここに、あなたのサイトのファイルが格納されたディレクトリが表示されます。

メモリ上限を編集するには、「public」フォルダを開き、「wp-config.php」ファイルを見つけます。

wp-config.phpファイルの編集
wp-config.phpファイルの編集

ファイルを右クリックして「表示/編集」を選択し、テキストエディタで開いてください。そして、このコードの行を見つけます。

define( ‘WP_MEMORY_LIMIT’, ‘256M’ );

メモリの上限が256MB未満であれば、大きい数値に変更します。準備ができたら、ファイルを保存して、サイトに画像をアップロードしてみてください。

6. WordPressのデバッグモードをオンにする

「WordPress could not insert attachment into the database(データベースに添付ファイルを挿入できませんでした)」エラーの原因を突き止めるもう一つの方法として、WordPressのデバッグモードを有効にすることもできます。WP Debugは、PHPエラーやその他の警告にフラグを立てることができるので、自分でコードを探し回る必要がなくなります。

デバッグプラグインをインストールしたり、WordPressでこの処理を(プラグインに頼ることなく)有効にしたりすることもできますが、Kinstaでは、もっと簡単な方法をご用意しています。MyKinstaで、「ツール」タブを開いてください。

そして、「WordPressデバッグ」を有効にしてください。

MyKinstaでWordPressのデバッグを行う
MyKinstaでWordPressのデバッグを行う

WordPress管理画面にログインすると、サイト上のエラーに関するアラートが表示されます。問題の原因を正確に把握するのに有用です。

エラーの原因を見つけたら、WordPressデバッグを無効にしてください。フロントエンドで(訪問者に)PHPコードを表示する可能性があるため、有効のままにはしないようにご注意ください。

7. ファイルのアクセス権を更新する

WordPressの画像アップロードの問題をまだ解決できていなければ、ファイルのアクセス許可を調整してみましょう。これは、特定のユーザーによるファイルへのアクセスを制限するものです。ファイルパーミッションが正しく設定されていないと、サーバー上にファイルをアップロードすることはできません。

この問題を解決するには、SFTPクライアントに再び接続します。次に、「public」>「wp-content」 に移動して、「uploads」ファイルを右クリックし「ファイルのパーミッション」を選択します。

WordPressアップロードに関連するファイルパーミッションを編集する
WordPressアップロードに関連するファイルパーミッションを編集する

これで、既存の権限に関する情報が表示されます。「所有者のパーミッション」、「グループ パーミッション」、「公開パーミッション」の3つの選択肢が表示されます。ここから、どのユーザーがWordPressファイルの読み取り、書き込み、実行ができるかを制御可能です。

ファイルパーミッションの変更
ファイルパーミッションの変更

ファイルのパーミッション設定は、数値で表されます。その意味は以下の通りです。

  • 1桁目:所有者のファイルパーミッションを指定
  • 2桁目:グループ ユーザーに対するファイルパーミッションを指定
  • 3桁目:一般ユーザーのファイルパーミッションを指定

アップロードについては、ファイルパーミッションが「744」に設定されていることを確認してください。そして、「ディレクトリのみに適用」を選択します。

アップロードするディレクトリのパーミッションを調整する
アップロードするディレクトリのパーミッションを調整する

この変更を保存した後、ファイルのパーミッションを再度開きます。今回は、このディレクトリ内のすべてのファイルのパーミッションをリセットします。

これを行うには、数値を「644」に設定します。また「サブディレクトリの中の再帰」と「ファイルのみに適用」を選択する必要があります。

アップロードのファイルパーミッションを調整する
アップロードのファイルパーミッションを調整する

さて、WordPressでファイルを再びアップロードしてみましょう。もし、このパーミッション設定で問題が解決しなければ、今度はディレクトリを「755」に設定してみてください。

8. ホスティング会社に連絡する

トラブルシューティングを徹底的に行っても、「WordPress could not insert attachment into the database(データベースに添付ファイルを挿入できませんでした)」エラーが解決できないこともあります。そんな時には、ホスティングプロバイダーにお問い合わせください。

Kinstaのサポートスタッフは、24時間年中無休でサポートサービスを提供しています。どのホスティングプランを使用していても、チャットサポートのご利用に制限はありません。

MyKinstaで、右下にあるチャットボタンをクリックしてください。すると、すぐにカスタマーサポートにメッセージをお送りいただけます。

MyKinstaのサポート
MyKinstaのサポート

WordPressのプロに相談することで、WordPressのエラーをすぐに解決することができます。

まとめ

WordPressエラーにより、サイトへのコンテンツ追加が妨げられることがあります。「データベースに添付ファイルを挿入できませんでした」というエラーでは、ファイルのアップロードや新しい記事の公開ができなくなります。

まずは、ファイルのアップロードを再び試みる前に数分待ってみてください。一時的なエラーでなければ、プラグインの競合がないかどうか確認し、PHP メモリの上限を増やすか、WordPressのデバッグを有効にしてみましょう。

私たちは、WordPress関連のエラーのトラブルシューティングがどれだけ大変であるか、よく理解しています。だからこそ、KinstaのWordPressホスティングプランをご利用であれば、知識豊富なエンジニアが24時間体制で、問題解決のお手伝いをいたします。

Jeremy Holcombe Kinsta

Kinstaのコンテンツ&マーケティングエディター、WordPress開発者、コンテンツライター。WordPress以外の趣味は、ビーチでのんびりすること、ゴルフ、映画。高身長が特徴。