LaravelのクエリビルダーやEloquentは便利ですが、複雑なSQLになればなるほど生SQLのほうが都合がいいこともあります。
そういうときのためにDBファサードからselectやinsertやdeleteなどが用意されています。以下のようにすることでパラメータをバインドしながら安全にインサートすることも可能です。
以下はシンプルな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)で呼び出してあげれば結果が配列で返ってきます。
特にクエリビルダーに慣れていない方にも有効なのでこういったやり方も頭の片隅に入れておきましょう。
ではでは