首页 > PHP教程 > php开发知识文章

PHP框架 --ThinkPHP 3.2.2 数据库事务操作的实现

这篇文章主要介绍了PHP框架 --ThinkPHP 3.2.2 数据库事务操作的实现,

分析了ThinkPHP中事务的启动、提交、回滚等操作方法并给出了完整的事务提交与回滚操作实例

ThinkPHP手册里的说明 :http://doc.thinkphp.cn/manual/trans_support.html

PHP框架 --ThinkPHP 3.2.2 数据库事务操作的实现

ThinkPHP提供了单数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法:

启动事务:

$User->startTrans()

提交事务:

$User->commit()

事务回滚:

$User->rollback()

事务是针对数据库本身的,所以可以跨模型操作的 。

例如:

$u = M('user');
$u1 = M('user_in');

// user模型中启动事务
$u->startTrans();

// 进行相关的业务逻辑操作
$map['id'] = 1;
$res = $u->where($map)->delete();
$res1 = $u1->delete();

if($res && $res1){
// 提交事务,上面的数据库操作生效
$u->commit();
}else{
// 事务回滚
$u->rollback();
}

另一个例子:

public function index()
{
$all['name'] = 'php';
M()->startTrans();
$re = M('learn')->add($all);
$re1 = $re2 = true;
if (!empty($re)) {
$level['level'] = '12';
$re1 = M('level')->add($level);

$level['level'] = '101';
$re2 = M('user')->where("id='1'")->save($level);
}
if (!empty($re) && !empty($re1) && !empty($re2)) {
M()->commit();
//$this->success('提交事务',__ROOT__);
echo '提交事务';
} else {
M()->rollback();
//$this->error('事务回滚',__ROOT__);
echo '事务回滚';
}
}

以上就是PHP框架 --ThinkPHP 3.2.2 数据库事务操作的实现的全部内容,希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。