如何插入多行?

How to insert multiple rows?

我有一组介于 10 到 200 之间的行,我需要将其插入到数据库中。 Active Records 这个任务很慢,我通过这种方式使用命令生成器:

        $builder = Yii::app()->db->schema->commandBuilder;
        $command=$builder->createMultipleInsertCommand('AviaOrders',$ordersInfoToSave );
        $command=$builder->createMultipleInsertCommand('ItineraryInfo',$itineraryInfoToSave );
        $command->execute();

其中 $ordersInfoToSave$itineraryInfoToSave 是具有以下结构的属性数组。

 array(array(name=>value,...),array(name=>value,...),...)

因为我用的是Yii-1.1.3,所以没有CommandBuilder的方法createMultipleInsertCommand

那么,如何使用 ActiveRecordsCommandBuilder 插入多行?

您可以创建一个字符串 MySql Insert Command as

$ordersInfoToSave='';

foreach ($records as $record)
$ordersInfoSave.="('{$record['attribute1vlaue']}','{$record['attribute2vlaue']}'),";

if($ordersInfoSave !== NULL){
$ordersInfoSave=substr($ordersInfoSave,0,-1);
$query='Insert Into AviaOrders (`attribute1`,`attribute2`) values '.$ordersInfoSave;


Yii::app()->db->createCommand($query)->execute();

}