1

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

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

一如既往地感谢,丹尼

4

2 回答 2

6

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

$queryResults = $command->queryAll();

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

    if($model->save($CActive))  echo "Good!";
}
于 2012-06-05T07:18:46.287 回答
-1

尝试这个..

 $queryResults = $command->queryAll();

         foreach ($queryResults as $CActive) {

            $model=new Campaigns;  

            $model->attributes=$CActive;

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

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

于 2012-06-05T07:37:53.823 回答