2013-09-28 65 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();