この記事は以下の書籍を参考に執筆しました
MySQLの設定
config/database.php
'database' => env('DB_DATABASE', 'forge'),
使用するデータベース名
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]);
}
/hello?id=とアクセスすると番号のレコードが表示される。
クエリ文字列の項目名から値を取得して
SQL分の第2引数へ配列を渡している。
DB::insert
DB::insert(クエリ文,パラメータ配列);
DB::update
DB::update(クエリ文,パラメータ配列);
DB::delete
DB::delete(クエリ文,パラメータ配列);
上記を使ってCRDUが実現できる。
しかしこれはSQLクレイブンを使った実行の仕方でスマートとは言えない
次はクエリビルダをやってみる