如何插入多行?
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
。
那么,如何使用 ActiveRecords
和 CommandBuilder
插入多行?
您可以创建一个字符串 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();
}
我有一组介于 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
。
那么,如何使用 ActiveRecords
和 CommandBuilder
插入多行?
您可以创建一个字符串 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();
}