【fuelphp】クエリビルダでinsert select構文を実行する方法メモ

はじめに

sqlを直接かいちゃえば、以下のような感じで簡単にかけるんですけど今回はこれをfuelphpのクエリビルダで実現してみたのでメモしておきます

insert into table1 (colum1, colum2, ・・・)
select colum1, colum2, ・・・ from table2 where ・・・order by id asc limit 0, 10 

実装方法

ドキュメントにも書いてあったんですけど、、、

$query = DB::select(
    "colum1",
    "colum2",
    ・・・
)->from("table2")
->where("・・・")
->offset(0)
->limit(10)
->order_by("id");

// select文を組み立てる(クエリがそのままかえってきます)
$connection = Database_Connection::instance();
$select = $query->compile($connection);

// insert文を組み立てる
$insert = "insert into table1 (colum1, colum2, ・・・) " . $select;

// insert実行
$query = DB::query($sql);
$result = $query->execute();

こんな感じになりました。insert selectも需要ありそうなので、もっと簡単に実行できるメソッドがあるといいなぁと思いました。

以上です