PDO事务控制

Posted t-young1201

tags:

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

<?php
  header(‘content-type:text/html;charset=utf-8‘);
  $dsn=‘mysql:host=localhost;dbname=test‘;
  $pdo=new PDO($dsn,‘root‘,‘‘);
  $pdo->exec(‘set names utf8‘);

  $pdo->beginTransaction(); //开启事务

  $sql1="UPDATE users SET money=money+100 WHERE id=100";
  $res1=$pdo->exec($sql1);
  $sql2="UPDATE users SET money=money+100 WHERE id=2";
  $res2=$pdo->exec($sql2);

  if ($res1>0 && $res2>0) {
    $pdo->commit(); //事务提交
    echo ‘操作成功‘;
  }else {
    $pdo->rollback(); //事务回滚
    echo ‘操作失败‘;
  }
  $pdo->setATTribute(PDO::ATTR_AUTOCOMMIT,1); //事务结束后,还原设置为自动提交单独语句
  $pdo=null;  //关闭连接
 ?>

 PDO操作MySql的方式中。$pdo->exec($sql):返回受影响的条数

 MySQLi的方式中。还需要调用 affected_rows();才可以获取受影响的条数

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

PDO中的事务处理

PDO 事务和函数调用

PDO:事务不回滚?

PDO如何完成事务操作

PDO数据访问抽象层

PHP PDO 基础知识