PDO事务控制

 1 <?php
 2   header('content-type:text/html;charset=utf-8');
 3   $dsn='mysql:host=localhost;dbname=test';
 4   $pdo=new PDO($dsn,'root','');
 5   $pdo->exec('set names utf8');
 6 
 7   $pdo->beginTransaction(); //开启事务
 8 
 9   $sql1="UPDATE users SET money=money+100 WHERE id=100";
10   $res1=$pdo->exec($sql1);
11   $sql2="UPDATE users SET money=money+100 WHERE id=2";
12   $res2=$pdo->exec($sql2);
13 
14   if ($res1>0 && $res2>0) {
15     $pdo->commit(); //事务提交
16     echo '操作成功';
17   }else {
18     $pdo->rollback(); //事务回滚
19     echo '操作失败';
20   }
21   $pdo->setATTribute(PDO::ATTR_AUTOCOMMIT,1); //事务结束后,还原设置为自动提交单独语句
22   $pdo=null;  //关闭连接
23  ?>

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

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

posted @ 2018-12-21 02:55  大羊树  阅读(178)  评论(0编辑  收藏  举报