zoukankan      html  css  js  c++  java
  • 夺命雷公狗---PDO NO:7 事务处理

    示例:

    <?php
    header(“Content-Type:text/Html;Charset=utf-8″);
    try{
        //创建对象
        $pdo=new PDO(“mysql:host=localhost;dbname=xsphp”,’root’,”);
        //设置错误使用异常的模式
        $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        //关闭自动提交
        $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);
    }catch(PDOException $e){
        echo “数据库连接失败:”.$e->getMessage();
    exit;
    }
    try{
        //开启一个事务
        $pdo->beginTransaction();
        $price=50;
        //小红转出50元
        $affected_rows = $pdo->exec(“update ren set kee=kee-{$price} where id=1″);
        if($affected_rows>0){
            echo “小红转出{$price}元.<br/>”;
        }else{
            throw new PDOException(“小红转出失败<br/>”);
        }
    //李白会收到50元    因为在我表上没有id=3的所有会提示交易失败,失败而且钱不会减少
        $affected_rows=$pdo->exec(“update ren set kee=kee+{$price} where id= 3″);
        if($affected_rows){
            echo “李白收到{$price}元成功”;
        }else{
            throw new PDOException(“李白收入失败”);
        }
    echo ‘交易成功!<br/>';
        $pdo->commit();
            }catch(PDOException $e){
                echo “错误:”.$e->getMessage();
                echo “交易失败!<br/>”;
                $pdo->rollback();
        }
    $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,1);
  • 相关阅读:
    istio-流量管理-基于不同版本访问规则控制
    k8s安装istio
    策略模式
    递归思想
    Java Lambda 表达式
    redis实现分布式锁
    MySQL 的优化方案总结
    linux下查看某一端口被哪个进程占用
    组合模式
    桥接模式
  • 原文地址:https://www.cnblogs.com/leigood/p/5032770.html
Copyright © 2011-2022 走看看