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)で呼び出してあげれば結果が配列で返ってきます。

特にクエリビルダーに慣れていない方にも有効なのでこういったやり方も頭の片隅に入れておきましょう。

ではでは

おすすめの記事