搜索
系统检测到您的用户名不符合规范:

事务我写了多次回滚是否正确

浏览:2531 发布日期:2015年01月10日 分类:求助交流 关键字: 事务 多表事务
因为跟金钱有关,所以用了事务,因为是多表更新,并且写了4次回滚,也不知道写法有没有问题,特请教,代码是否合理,事务是否合理,请各位指正
代码如下:public function checkset() {
$post = I ( 'post.' );
$id = intval ( $post ['id'] );
if ($id < 1) {
$this->error ( 'ID不存在,非法操作' );
}
$list = $this->task_is_own ( $id );
if (empty ( $list )) {
$this->error ( '数据为空,审核失败' );
}
$innum = 0;
$checks = intval ( $post ['checks'] );
if ($checks > 0) {

if (intval ( $list ['is_praise'] ) < 1) {
$post ['status'] = 5;
$innum = 1;
}
}
$order = M ( 'olist' );
// 启动事务
$order->startTrans ();
if ($order->create ( $post )) {
if (false === $order->save ()) {
// 事务回滚
$order->rollback ();
$this->error ( '审核失败' );
}
} else {
// 事务回滚
$order->rollback ();
$this->error ( '验证失败' );
}

if ($checks < 2) {
// 提交事务
$order->commit ();
$this->success ( "提交成功!", U ( 'checkno' ) );
exit ();
}

$money = format_money ( $list ['trademoney'] );
if (false === $this->deduct_taskmoney ( $list ['taskid'], $money ) || false === $this->deduct_sellermoney ( $list ['sellerid'], $money )) {
// 事务回滚
$order->rollback ();
$this->error ( '更新金额失败' );
}

if (false === $this->add_usermoney ( $list ['userid'], $money )) {
// 事务回滚
$order->rollback ();
$this->error ( '添加金额失败' );
}

$order->commit ();
$this->success ( "提交成功!", U ( 'checktaskok' ) );
$this->add_money_logs ( $money, $list ['userid'], $list ['username'], $list ['orderid'], "$id 金额" );
$this->smallset ( $list ['smallid'], $money, $innum );
if ($innum > 0) {
$this->add_usernum ( $list ['userid'] );
}
exit ();
}
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
壮壮
积分:1129 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /