Yii1.1 批量处理(新增、删除、修改)

$model = new UebEbayAccountNotice();
$transaction = $model->getDbConnection()->beginTransaction();

新增

//差集,需要增加的
$addUserIdArr = array_diff($newUserIdArr,$oldUserIdArr);
if (!empty($addUserIdArr)){
	$addDataArr = [];
	foreach ($addUserIdArr as $k=>$addId){
		$addDataArr[$k]['user_id'] = $addId;
		$addDataArr[$k]['notice_type'] = $data['notice_type'];
		$addDataArr[$k]['days_type'] = $data['days_type'];
		$addDataArr[$k]['is_active'] = $data['is_active'];
		$addDataArr[$k]['add_time'] = time();
	}
	$keyArr = ['user_id','notice_type','days_type','is_active','add_time'];
	$flag = $model->batchInsertAll($model->tableName(),$keyArr,$addDataArr);
}

删除

//差集,需要删除的
$delUserIdArr = array_diff($oldUserIdArr,$newUserIdArr);
if (!empty($delUserIdArr)){
	$condition = 'user_id in ('.implode(",",$delUserIdArr).') and is_active='.$isactive;
	$flag = $model->deleteAll($condition);
}

修改

$model->updateAll($attributes,$condition,$params); 
//交集,需要修改的
$updUserIdArr = array_intersect($oldUserIdArr,$newUserIdArr);
if (!empty($updUserIdArr)){
	$attributes = ['notice_type'=>$data['notice_type'],'days_type'=>$data['days_type'],'is_active'=>$data['is_active']];
	$condition = 'user_id in ('.implode(",",$updUserIdArr).') and is_active='.$isactive;
	$flag = $model->updateAll($attributes,$condition);
}

单个修改

$model = User::model()->findByPk($pk)
 $model->is_deleted = 1;
 $model->update(['is_deleted']);

#updateByPk($pk,$attributes,$condition,$params);
#$pk主键,可以是一个也可以是一个集合,$attributes是要修改的字段的集合,$condition条件,$params传入的值
$count=Admin::model()->updateByPk(1,array('username'=>'admin','password'=>'admin'));
 $count=Admin::model()->updateByPk(array(1,2),array('username'=>'admin','password'=>'admin'),'username=:name',array(':name'=>'张三'));

#自增:updateCounters($counters,$condition,$params); 
array('status'=>1)代表数据库中的admin表根据条件username='admin',查询出的所有结果status字段都自加1

事务

$transaction->commit();
$transaction->rollback();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值