LaravelのクエリビルダーやEloquentは便利ですが、複雑なSQLになればなるほど生SQLの方が都合がいいこともあります。
そういうときのためにDBファサードにはselectやinsertやdeleteメソッドも用意されていますのでこれを利用しましょう。
第二引数にバインドしたいパラメータを指定すれば、SQLインジェクション対策も問題ありません。
以下はシンプルなSQLで実行する例です。
private function insertMaster($id, $name)
{
$bindParam = [
'id' => $id,
'name' => $name,
];
$sql = <<< SQL
INSERT INTO master_table
(
id,
name
)
VALUES
(
:id,
:name
)
SQL;
\Db::insert($sql, $bindParam);
}
select文であればDB::select($sql,$bindParam)で呼び出してあげれば結果が配列で返ってきます。
特にクエリビルダーに慣れていないうちは、思ったSQLにならない…ということもありますのでこういった方法も頭の片隅に入れておきましょう。
ではでは
![[Laravel]bladeでバリデーションエラーメッセージを表示する](https://biotope.work/wp-content/uploads/2021/01/laravel_logo_230r-300x196.jpg)