使用Yii模型创建或更新多个mysql行

时间:2012-06-05 07:16:42

标签: php mysql frameworks yii

我最近开始与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(因为它是相同的模型)。

我需要为每一行创建一个新模型吗? (似乎不太可能......)

一如既往地谢谢 丹尼

2 个答案:

答案 0 :(得分:6)

你必须在每个插页上创建一个新实例,就像这样,否则你只是一遍又一遍地更新一个模型。

$queryResults = $command->queryAll();

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

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

答案 1 :(得分:-1)

试试这个..

 $queryResults = $command->queryAll();

         foreach ($queryResults as $CActive) {

            $model=new Campaigns;  

            $model->attributes=$CActive;

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

那么你必须为每一行创建实例.. Yii核心要求..             }