質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.42%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

13010閲覧

SQLSTATE[42S02]: Base table or view not found: 1146エラーについて

tomoki_at

総合スコア6

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/02/06 06:05

LaravelでMySQLとの接続部分で困っています

Laravelでデータベースに接続を試みたところエラーが出ました。
エラーメッセージを見る限りテーブルがないよ、と言われているのはわかるのですが、確認するとちゃんとテーブルがありなぜエラーが出るのかわかってない状態です。

databaseはCREATE DATABASE で手動で作成
tableはphp artisan migrate
table内の情報はseedを使用

発生している問題・エラーメッセージ

Illuminate\Database\QueryException SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel_local.instructors' doesn't exist (SQL: select * from `instructors`)

該当のソースコード

controller

1namespace App\Http\Controllers; 2 3use App\Instructor; 4 5use Illuminate\Http\Request; 6 7class InstructorController extends Controller 8{ 9 //インストラクター一覧用コントローラー 10 public function index () 11 { 12 $instructors = Instructor::all(); 13 return view('Instructor',['instructors' => $instructors]); 14 } 15}

env

1DB_CONNECTION=mysql 2DB_HOST=127.0.0.1 3DB_PORT=3306 4DB_DATABASE= online_golf 5DB_USERNAME=root 6DB_PASSWORD=

databasephp

1'mysql' => [ 2 'driver' => 'mysql', 3 'url' => env('DATABASE_URL'), 4 'host' => env('DB_HOST', '127.0.0.1'), 5 'port' => env('DB_PORT', '3306'), 6 'database' => env('DB_DATABASE', 'online_golf'), 7 'username' => env('DB_USERNAME', 'root'), 8 'password' => env('DB_PASSWORD', ''), 9 'unix_socket' => env('DB_SOCKET', ''), 10 'charset' => 'utf8mb4', 11 'collation' => 'utf8mb4_unicode_ci', 12 'prefix' => '', 13 'prefix_indexes' => true, 14 'strict' => true, 15 'engine' => null, 16 'options' => extension_loaded('pdo_mysql') ? array_filter([ 17 PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), 18 ]) : [], 19 ],

database

1mysql> show databases; 2+--------------------+ 3| Database | 4+--------------------+ 5| information_schema | 6| mysql | 7| online_golf | 8| performance_schema | 9| sys | 10+--------------------+

tables

1mysql> show tables; 2+-----------------------+ 3| Tables_in_online_golf | 4+-----------------------+ 5| failed_jobs | 6| instructors | 7| migrations | 8| password_resets | 9| users | 10+-----------------------+

table

1desc instructors; 2+--------------+-----------------+------+-----+---------+----------------+ 3| Field | Type | Null | Key | Default | Extra | 4+--------------+-----------------+------+-----+---------+----------------+ 5| id | bigint unsigned | NO | PRI | NULL | auto_increment | 6| created_at | timestamp | YES | | NULL | | 7| updated_at | timestamp | YES | | NULL | | 8| name | varchar(255) | NO | | NULL | | 9| calendar_Id | varchar(255) | NO | | NULL | | 10| calendar_Key | varchar(255) | NO | | NULL | | 11| zoom_url | varchar(255) | NO | | NULL | | 12+--------------+-----------------+------+-----+---------+----------------+

試したこと

https://qiita.com/igz0/items/d14fdff610dccadb169eこちら参考に
モデルのInstructor.php に
protected $table = 'instructors';を記入しましたがエラー内容は変わりませんでした

次に元々用意されているusersテーブルに
protected $table = 'users'で接続するのを変えたところエラーは出ませんでしたが値は取り出せませんでした。

補足情報(FW/ツールのバージョンなど)

使用ツール 
PHP 7.4.15
Laravel Installer 3.0.1
mysql Ver 8.0.23
使用環境
https://qiita.com/ucan-lab/items/5fc1281cd8076c8ac9f4
こちらの記事を参考にdockerでの環境構築をしました。

記事を見る限り使用されるバージョンはlocalhostが優先されるそうです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DB_DATABASE= online_golf

Table 'laravel_local.instructors' doesn't exist

指定されたデータベース名と、接続しているデータベース名が異なっています。

投稿2021/02/06 06:17

phper.k

総合スコア3923

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomoki_at

2021/02/06 06:59

回答ありがとうございます 秒で解決しました これに気づけないのはやばいですね、、 ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.42%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問