こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、13年目エンジニアです。
この記事では、 LaravelでXAMPPのphpMyAdminのMySQLとデータベース接続するやり方について丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows11 |
---|---|
PHPのバージョン | 8.2.4 |
Laravelのバージョン | 10.45.1 |
XAMPPのバージョン | 8.2.4 |
phpMyAdminのバージョン | 5.2.2 |
この記事では
C:\Laravel
配下に【LaravelSample】という名前でプロジェクトを作成しています。
XAMPPのphpMyAdminのMySQLとデータベース接続するやり方について解説
データベース接続するやり方を解説します。
この記事では、テーブルのレコードをすべて取得してビューに渡して表示させます。
XAMPP:接続するデータベースを確認
まず、XAMPPのphpMyAdminのMySQLに入って接続するデータベースを確認します。
phpMyAdminを起動するやり方は以下の記事をご参考ください。
この記事では「test」データベースに接続します。
「test」データベース内にあるテーブルは「users」テーブルだけです。
「users」テーブルの構造とレコードは、以下のようになっています。
id | name | age | job_id |
---|---|---|---|
1 | 田中一郎 | 30 | 123 |
2 | 鈴木太郎 | 58 | 1 |
XAMPP側での確認作業は、以上で完了です。
次からはLaravelプロジェクト側で作業します。
Laravel:.envを修正
プロジェクト直下に【.env】というファイルがあるので、それを開きます。
その中に
1 2 3 4 5 6 |
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= |
と書かれている箇所があるので、接続したいデータベースの値に書き換えます。
書き換えるものは
- DB_DATABASE
- DB_USERNAME
- DB_PASSWORD
の3つです。
【DB_DATABASE】には、接続したいデータベースの名前を設定するので、この記事では「test」になります。
【DB_USERNAME】と【DB_PASSWORD】にはphpMyAdminでログインするときに使っているユーザー名とパスワードを入力します。
修正すると以下になります。
1 2 3 4 5 6 |
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=test DB_USERNAME=******** DB_PASSWORD=******** |
これで「test」データベースに接続するための設定は完了です。
Laravel:コントローラーを作成
接続の設定は完了したので、コントローラーでテーブルを読み込みます。
この記事では、コントローラーは名前を【SampleController】とし、
LaravelSample\app\Http\Controllers\SampleController.php
に位置しています。
「users」テーブルを全取得してビューに渡すコントローラーは以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class SampleController extends Controller { /** * DB接続サンプル */ public function db_sample(){ $users = DB::select('select * from users'); return view('sample',['users' => $users]); } } |
SQLのクエリを実行するために
1 |
use Illuminate\Support\Facades\DB; |
を宣言しています。
コントローラーからBladeビューに値を渡して表示する方法は以下の記事をご参考ください。
Laravel:web.phpを更新
作成したコントローラーを呼ぶようweb.phpを修正します。
web.phpには、【http://〇〇.〇〇.〇〇:8000/sample】でアクセスした場合、SampleControllerのdb_sampleメソッドを確認するメソッドを呼ぶように定義します。
1 2 3 4 5 6 |
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\SampleController; Route::get('/sample', [SampleController::class, 'db_sample']); |
web.phpについて詳しくはこちらの記事をご参考ください。
Laravel:Bladeビューを作成
Bladeビューは名前を【sample.blade.php】とし、viewsディレクトリ直下に格納します。
Bladeビューでは、渡された値を画面に表示させます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charaset="utf-8"> <title>DB接続サンプル</title> </head> <body> <table> <tr><th>id</th><th>name</th><th>age</th><th>job_id</th></tr> @foreach ($users as $user) <tr> <td>{{$user->id}}</td> <td>{{$user->name}}</td> <td>{{$user->age}}</td> <td>{{$user->job_id}}</td> </tr> @endforeach </table> </body> </html> |
@foreachディレクティブとは、Bladeビューで繰り返し処理ができるディレクティブです。
詳しくはこちらの記事をご参考ください。
以上で、準備が整いました!
実行して確認
DB接続の実行結果を確認します。
phpMyAdminを起動して、Laravelサーバーを立ち上げます。
コマンドは
1 |
php artisan serve |
です。
コマンドの詳細な説明は、こちらの記事をご参考ください。
- http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/sample
※コマンドプロンプトに記載されているURL - http://localhost:8000/sample
どちらかのURLにアクセスします。
DBに接続できて、テーブルからSELECTできていることが確認できました!
まとめ:テーブルから値を取得してみよう
以上がLaravelのXAMPPのphpMyAdminのMySQLとデータベース接続するやり方の解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント