「Table 'Table1' doesn't exist」と表示されるとき

スポンサーリンク

MySQLデータベースを使うときに表示される「Table 'Table1' doesn't exist」というエラーメッセージは、直訳するとテーブルTable1が存在しないという意味です。

原因としてSQLの入力ミスも考えられますが、よくあるのが、Windowsで作成したPHPスクリプトをLinuxのレンタルサーバーにアップロードするケースです。

一般的にはWindowsではテーブル名の大文字と小文字を区別せず、Linuxでは区別されるため、table1という名前のテーブルに「SELECT * FROM Table1」というSQLを実行すると、

  • Windows --- うまくいく
  • Linux --- 「Table 'Table1' doesn't exist」エラーになる

という違いが出ます。

「いつも使っているWindowsで作成したPHPスクリプトはうまく動いていたのに、レンタルサーバーにアップロードしたら動かなくなった

よくあるトラブルです。

レンタルサーバーの不具合というより、こうした環境の違いが典型的な原因です。

大文字と小文字を区別する環境ではエラーになる

大文字と小文字を区別する環境ではエラーになる

対策として、テーブル名は大文字と小文字を統一(「すべて小文字に」など)しておきましょう。

または、作成したテーブル名の大文字と小文字の違いを含めて一致するSQLに修正しましょう。

PHPの基礎が身に付いたかチェックするなら

PHP「直す力」養成ドリル
スポンサーリンク