【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も需要ありそうなので、もっと簡単に実行できるメソッドがあるといいなぁと思いました。
以上です