2013-09-28 28 views
2

因此,我得到了一系列需要插入到表中的数据。现在我正在使用for循环遍历每个条目并逐个保存模型。但这似乎不是一个好方法,而且使用交易也是一个问题。什么是更好的方式来提高性能,所以我可以使用transaction.Here是我目前使用的代码。Yii插入一系列数据

foreach ($sheetData as $data) 
    { 
     $newRecord = new Main; 
     $newRecord->id = $data['A']; 
     $newRecord->name = $data['B']; 
     $newRecord->unit = $data['C']; 
     $newRecord->save(); 
    } 

回答

1

如果你可以跳过验证,你可以生成一个简单的sql插入并执行一次。如:

$count = 0; 
$sql = ''; 
foreach ($sheetData as $data) 
{ 
    if(!$count) 
     $sql .= 'INSERT INTO tbl_main (id ,name ,unit) Values ('.$data['A'].','$data['B']','$data['C']') '; 
    else 
     $sql .= ' , ('.$data['A'].','$data['B']','$data['C']')'; 
    $count++; 
} 

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