Php 使用Yii模型创建或更新多个mysql行
我最近开始与Yii合作,所以请原谅我的无知:) 我有一个返回多行(数组数组)的SQL查询,然后我想将这些行插入数据库:Php 使用Yii模型创建或更新多个mysql行,php,mysql,frameworks,yii,Php,Mysql,Frameworks,Yii,我最近开始与Yii合作,所以请原谅我的无知:) 我有一个返回多行(数组数组)的SQL查询,然后我想将这些行插入数据库: $queryResults = $command->queryAll(); $model=new Campaigns(); foreach ($queryResults as $CActive) { $model->setIsNewRecord(true); $model->attributes=$CActive; if($model->
$queryResults = $command->queryAll();
$model=new Campaigns();
foreach ($queryResults as $CActive) {
$model->setIsNewRecord(true);
$model->attributes=$CActive;
if($model->save($CActive)) {
echo "Good!";
}
问题是,即使我用新记录设置模型,它也有上一次PK的记录(因为它是同一个模型)
我是否需要为每行创建一个新模型?(似乎不太可能…)
谢谢你一如既往,
Danny您必须在每次插入时创建一个新实例,如下图所示,否则您只是一次又一次地更新一个模型
$queryResults = $command->queryAll();
foreach ($queryResults as $CActive) {
$model=new Campaigns;
$model->attributes=$CActive;
if($model->save($CActive)) echo "Good!";
}
您必须在每次插入时创建一个新实例,就像这样,否则您只是在一次又一次地更新一个模型
$queryResults = $command->queryAll();
foreach ($queryResults as $CActive) {
$model=new Campaigns;
$model->attributes=$CActive;
if($model->save($CActive)) echo "Good!";
}
试试这个
$queryResults = $command->queryAll();
foreach ($queryResults as $CActive) {
$model=new Campaigns;
$model->attributes=$CActive;
if($model->save($CActive)) {
echo "Good!";
}
您必须为每一行创建实例,这是Yii的核心要求。。
}试试这个
$queryResults = $command->queryAll();
foreach ($queryResults as $CActive) {
$model=new Campaigns;
$model->attributes=$CActive;
if($model->save($CActive)) {
echo "Good!";
}
您必须为每一行创建实例,这是Yii的核心要求。。
}这是他最初拥有的。你的答案与Örs'完全相同,因此你要么添加一些有价值的信息(可能是另一种方法),要么删除这个答案。这是他最初拥有的。你的答案与Örs'完全相同,所以要么添加一些有价值的信息(可能是另一种方法),要么删除这个答案。谢谢!!我就是这么想的。。。这不是很消耗资源吗?创建实例不是,但是插入肯定会付出代价。谢谢!!我就是这么想的。。。这不是很消耗资源吗?创建实例不是,但是插入肯定会付出代价。