7.19 PDO事务机制

Posted sunhao1987

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7.19 PDO事务机制相关的知识,希望对你有一定的参考价值。

header("Content-type: text/html; charset=utf-8");
    $pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
    $pdo->exec("set names utf8");
    //为下面的try()catch(){}抓到的异常,定义错误类型
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
   //开始事务机制
   $pdo->beginTransaction();
   //异常捕获(异常)
   try{
    $sql1 = "update user_money set money=(money-300) where id=1";
    $pdo->exec($sql1);
  
    $sql2 = "update user_money set money=(money+300) where id=2";
    $pdo->exec($sql2);
  
    $sql3 = "update user_money set money=(money-200) where id=2";
    $pdo->exec($sql3);
 
    $sql4 = "update user_money set money=(money+200) where id=3";
    $pdo->exec($sql4);
    //没有异常则提交该事件
    echo "转账成功";
    $pdo->commit();//提交事件,只有提交了事件,才能真正在数据库进行修改
   }catch(PDOException $pe){
    $errorInfo = $pe->getMessage();//得到错误的具体信息
    $errorCode = $pe->getCode();//得到错误的代号
    $errorLine = $pe->getLine();//得到错误的行号
    echo "<p>转账失败原因:</p>";
    echo "<p>{$errorInfo}</p>";
    echo "<p>{$errorCode}</p>";
    echo "<p>{$errorLine}</p>";
    //回滚事件,如果检测到有异常,前面的几步都要回滚到最初的状态
    $pdo->rollBack();
   }


































以上是关于7.19 PDO事务机制的主要内容,如果未能解决你的问题,请参考以下文章

PDO 事务是不是涵盖 PDO::query()?

PDO 事务函数与 MySQL 事务语句?

PDO中的事务处理

pdo + 事务处理 处理线性事务

PDO 事务不工作

PDO事务控制