多条件搜索与事务回滚

这篇博客讲述了如何在PHP中使用事务处理进行数据库操作,包括查询、更新和保存数据。通过多重循环和条件判断,确保数据的正确匹配和更新。在遇到错误时,利用异常处理进行事务回滚,保证数据一致性。

通过多个条件对数组进行判断

##一个二维数组通过 一个数组几个条件来判断 [‘gender’ => ‘女’,‘name’ => ‘王向玉’]

DB::('users')->limit(10)->get(); 查询一个数组包对象

     foreach ($list as $item) {
        foreach ($keyValueArray as $k => $val) {
            if ($item->$k == $val) {
               如果list数组里面的键值等于转过来的那么就。。。。。。
            }
        }
    }

事务回滚

public function index()
{
// handle里面有try捕获异常,当不成功的时候直接抛出异常就可以回滚了因为异常里面写有回滚代码
TransactionService::handle(function () use ($param) {
result=newUsersModel();if(UserController::isNotEmpty(result = new UsersModel(); if (UserController::isNotEmpty(result=newUsersModel();if(UserController::isNotEmpty(param, ‘name’))
result−>setname(result->setname(result>setname(param[‘name’]);
if (UserController::isNotEmpty($param, ‘sex’))
result−>settsex(result->settsex(result>settsex(param[‘sex’]);
$arr = $result->save();
$dataarr = [‘name’=>‘广州’];
updatearr=UsersModel::query()−>where(′id′,11)−>update(updatearr = UsersModel::query()->where('id',11)->update(updatearr=UsersModel::query()>where(id,11)>update(dataarr);
if (!updatearr∣∣!updatearr || !updatearr∣∣!arr) {
throw new BusinessException(‘此次修改无效’);
}
});
}

/**

  • 封装好的事务回滚方法
    */

use Closure;
use Exception;
use Illuminate\Support\Facades\DB;

class TransactionService
{
/**
* 事务操作封装
* @param Closure $handle 事务操作
* @return mixed
* @throws Exception
*/
static public function handle(Closure $handle) {
DB::beginTransaction();
$result = null;
try {
$result = $handle();
DB::commit();
} catch (Exception $exception) {
DB::rollBack();
throw $exception;
}
return $result;
}
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值