码迷,mamicode.com
首页 > 其他好文 > 详细

7.19 PDO事务机制

时间:2018-07-19 22:03:00      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:mysq   set   attribute   int   原因   roo   setattr   sage   update   

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事务机制

标签:mysq   set   attribute   int   原因   roo   setattr   sage   update   

原文地址:https://www.cnblogs.com/sunhao1987/p/9338584.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!