• ThinkPHP实现事务回滚示例代码(附加:PDO的事务处理)


    ThinkPHP的事务回滚示例如下:

    $m=D('YourModel');//或者是M();
    $m2=D('YouModel2');
    $m->startTrans();//在第一个模型里启用就可以了,或者第二个也行
    $result=$m->where('删除条件')->delete();
    $result2=m2->where('删除条件')->delete();
    if($result && $result2){
    $m->commit();//成功则提交
    }else{
    $m->rollback();//不成功,则回滚
    }

    PDO的事务回滚处理:

    $servername="localhost";
    $username="root";
    $password="admin";
    $dbname="test";
    try{
      $conn=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password);
      $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
      //开始事务
      $conn->beginTransaction();
      $conn->exec("INSERT INTO `hello`(`firstname`,`lastname`,`email`)VALUES('YE','XIAMING','yexianming@163.com')");
      $conn->exec("INSERT INTO `hello`(`firstname`,`lastname`,`email`)VALUES('YE','CONG','yecong@163.com')");
      $conn->exec("INSERT INTO `hello`(`firstname`,`lastname`,`email`)VALUES('FANG','MENG','fangmeng@168.com')");
      //提交事务
      $conn->commit();
      echo "New records created successfully!";
    }catch(PDOException $e){
       //回滚事务
       $conn->rollBack();
       echo $sql."<br>".$e->getMessage();
    }
    $conn=NULL;
  • 相关阅读:
    Vue.js + Flask + echarts + MySQL
    一次挖矿处理
    Docker三剑客之Docker Swarm
    Malleable-C2-Profiles配置
    「持续更新中」最近浏览的网站心得总结
    有关虚拟内存的一点思考
    Qt---ToolBox自由伸展
    mindmaster导出markdown文档
    svg代码嵌入秀米的方法
    css3渐变透明度的写法
  • 原文地址:https://www.cnblogs.com/xuzhengzong/p/7645366.html
Copyright © 2020-2023  润新知