LoginSignup
1
0

More than 3 years have passed since last update.

【Laravel】 データベース 続き

Last updated at Posted at 2020-07-21

この記事は以下の書籍を参考に執筆しました

MySQLの設定

config/database.php
'database' => env('DB_DATABASE', 'forge'),

出典:PHPフレームワークLaravel入門 第2版

使用するデータベース名
SQLiteではデータベースファイルの名前だが、MySQLはサーバーに用意されているデータベース名を指定。

.envの環境設定について

Laravelの環境変数を以下のように設定する。

.env
DB_CONNECTION=sqlite

DBクラスの利用

DB::selectの利用

$変数=DB::select(実行するSQL文);

select文を実行するものだと思えばいい
戻り値はオブジェクトをまとめた配列のためテンプレ側のforeachで表示できる。

パラメータ結合の利用

文字列とパラメータ配列を組み合わせてSQL文を作成する

    public function index(Request $request)
    {
      if(isset($request->id)){
        $param=['id'=>$request->id];
        $items=DB::select('select * from people where id=:id',$param);
      }else {
        $items=DB::select('select * from people');
      }

      return view('hello.index',['items'=>$items]);
    }

出典:PHPフレームワークLaravel入門 第2版

/hello?id=とアクセスすると番号のレコードが表示される。

クエリ文字列の項目名から値を取得して
SQL分の第2引数へ配列を渡している。

DB::insert

DB::insert(クエリ文,パラメータ配列);

DB::update

DB::update(クエリ文,パラメータ配列);

DB::delete

DB::delete(クエリ文,パラメータ配列);

上記を使ってCRDUが実現できる。

しかしこれはSQLクレイブンを使った実行の仕方でスマートとは言えない
次はクエリビルダをやってみる

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0