2012-06-05 106 views
1

我最近開始與工作的Yii多個MySQL線,所以請原諒無知:)創建或更新使用Yii模型

我有一個SQL查詢,該查詢返回多行(數組的數組),然後,我想插入這些行DB:

$queryResults = $command->queryAll(); 
$model=new Campaigns(); 
foreach ($queryResults as $CActive) { 
    $model->setIsNewRecord(true); 
    $model->attributes=$CActive; 

if($model->save($CActive)) { 
    echo "Good!"; 
} 

問題是,即使我設置了新的記錄模式有以前PK的記錄(因爲它是同一型號)。

我需要爲每一行創建一個新模型嗎? (似乎沒有可能......)

感謝一如既往, 丹尼

回答

6

你必須在每次插入,這樣創造一個新的實例,否則你只是一遍又一遍更新一個模型。

$queryResults = $command->queryAll(); 

foreach ($queryResults as $CActive) { 
    $model=new Campaigns; 
    $model->attributes=$CActive; 

    if($model->save($CActive)) echo "Good!"; 
} 
+0

謝謝!這就是我認爲的......這不是非常耗費資源? –

+0

實例創建不是,但插入一定會付出代價。 – adamors

-1

試試這個..

$queryResults = $command->queryAll(); 

     foreach ($queryResults as $CActive) { 

      $model=new Campaigns; 

      $model->attributes=$CActive; 

      if($model->save($CActive)) { 
    echo "Good!"; 
} 

那麼你必須要爲每一個row..its Yii的核心要求創建實例.. }

+0

這是他原來的。 – adamors

+0

你的答案與Örs'完全一樣,所以你要麼添加一些有價值的信息(或許有其他方法),要麼刪除這個答案。 –

相關問題