kohana orm3中的多插入

SET*_*SET 2 kohana kohana-3 kohana-orm

在我的应用程序中,我有一个执行大约1000次的循环,在其中我正在创建对象并保存它.这是我使用数据填充数据库的应用程序的一部分.通常这看起来像这样:

foreach(...){
    ...
    try{
        $object = new Model_Whatever;
        $object->whatever=$whatever;
        $object->save();}
    catch(Exception $e){
    ...}
}
                    }
Run Code Online (Sandbox Code Playgroud)

这会产生1000个INSERT查询.是否有可能以某种方式使kohana生产多个插入物.将其拆分为10个插入,每个插入100个数据集.是否可能,如果可以,这样做的方式是什么?

pre*_*eds 11

虽然Kohana ORM不支持多插入,但仍可以使用查询构建器,如下所示:

$query = DB::insert('tablename', array('column1', 'column2','column3'));
foreach ($data as $d) {
    $query->values($d);
}
try {
    $result = $query->execute();
} catch ( Database_Exception $e ) {   
        echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
  • 你仍然需要拆分数据,所以上面不会尝试执行1000插入的查询.
  • $ data假定一个数组数组,其值对应于列的顺序

感谢Isaiah在#kohana