首页 > 作文

ThinkPHP数据库驱动之mysql事物回滚

更新时间:2023-04-07 18:08:15 阅读: 评论:0

1、开启事务方法 starttrans()
2、事务提交方法 commit()
3、事务回滚方法 rollback()

用法例子:

$order = m(‘order’);$alladded = true; //先设定一个值为 true;$data['name'] = 'winter';$order->starttrans(); //开启事物for($i = 1;$i<3;$i++){     $sign = $order->add($data); //添加一条数据到order表    if(!$sign){        $order->rollback(); //如果order添加失败事物回滚        $alladded = fal; //并且把alladded设置为 fal    }}//回滚if($alladded){    $order->commit();     // 如果alladded为真则两条数据都成功;那么 commit事物提交    echo '添加成功';}el{    echo '添加失败';}

如果commit了。那么就提交插入数据。如果发现alladded为假说明有条数据没插入正确。那么就rollback回滚就会取消事物开启之后操作数据库的所有行为。

提供一个例子助于大家加深理解

public function inrtdata(){    $model = m();    $model->starttrans();    $data['name'] = 'winter';//增加一条用户信息    $si = $model->table(c('db_prefix').'ur')->add($data);    if(!$si){北京高考网        $model->rollback();        exit();    }    $car['brand'] = $si;//增加一条用户id    $c = $model->table(c('db_prefix').'car')-&心里美滋滋的作文gt;add($car);    if($si && $c){        $model->commit();    }el{        $model->rollback();    }}复制代码

例子二:

//提现操作    public function ajax_tx()    {         //判断是否登录        if(ssion('uid')优势大学 == null || ssion('uid') == "" || ssion('uid') == fal) {           echo "300";            exit;        }el{            //接受提现提交来的数据                        $txnumber = intval(trim($_post['txnumber']));            $name = trim($_post['name']);            $alipay_number = trim($_post['alipay_number']);            $data = m("fanxian_new")->where("f_uid='".ssion('uid')."'")->find();            if(empty($txnumber)){                echo "301";exit;//提现金豆不能为空            }el{                if(empty($data) || intval($data['f_fan_fee'])==0){                    echo "302";exit;//无可提现金豆                }el{                    if($data['f_fan_fee']<number_format($txnumber,2)){                        echo "303";exit;//提现金豆数请勿大于持有金豆数                    }el{                丁俊轩        if(empty($alipay_number)){                            echo "304";exit;//提现者支付宝账号不能为空                        }                        if(empty($name)){                            echo "305";exit;//提现者真实姓名不能为空                        }                        $model=new \think\model();                        $model->starttrans(); //开启事物                        //操作提现记录                        $fanxian_new_log = m("fanxian_new_log");                        $fanxian_new_log->f_num_fee = number_format($txnumber,2);                        $fanxian_new_log->f_lmid = ssion("uid");                        $fanxian_new_log->f_create_time = time();                        $fanxian_new_log->f_name = $name;                        $fanxian_new_log->f_alipay = $alipay_number;                        $fanxian_new_log->f_status = 1;//1表示提现记录 0表示返现记录                        $jdtx = $fanxian_new_log->add();                        $fanxian_new = m("fanxian_new");                        $fanxian_new->f_uid    = $data['f_uid'];                        $fanxian_new->f_fan_fee = $data['f_fan_fee']-number_format($txnumber,2);                        $jd = $fanxian_new->save();                        if(!empty($jdtx) && !empty($jd)){                            //提交                            $model页面访问紧急升级->commit();                            echo "200";exit;//提现成功                        }el{                            //回滚                            $model->rollback();                            echo "306";exit;//提现失败                        }                                            }                }            }                    }    }

本文发布于:2023-04-07 18:08:13,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/5951eedb73e0d6c90430df14c13d2016.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:ThinkPHP数据库驱动之mysql事物回滚.doc

本文 PDF 下载地址:ThinkPHP数据库驱动之mysql事物回滚.pdf

标签:事物   数据   为空   现金
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图