<?php header('content-type:text/html;charset=utf-8'); try{ $pdo=new pdo("mysql:host=127.0.0.1;dbname=month9", "root", "root", array(PDO::ATTR_AUTOCOMMIT=>0));//最后是关闭自动提交 //$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 0);//这个是通过设置属性方法进行关闭自动提交和上面的功能一样 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//开启异常处理 }catch(PDOException $e){ echo "数据库连接失败:".$e->getMessage(); exit; } try{ $pdo->beginTransaction();//开启事务处理 $price=500; $sql="update users set score='100' where u_id=1"; $affected_rows=$pdo->exec($sql); if($affected_rows==false) throw new PDOException("aaa修改失败");//那个错误抛出异常 $sql="update users set score='60' where u_id=2"; $affected_rows=$pdo->exec($sql); if($affected_rows==false) throw new PDOException("bbb修改失败"); echo "交易成功!"; $pdo->commit();//交易成功就提交 }catch(PDOException $e){ echo $e->getMessage(); $pdo->rollback(); } $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 1);//自动提交,如果最后不自动提交,转账是不成功的 //设置错误 //报告模式 ERRMODE_SILENT ERRMODE_WARNING
事务的简单应用
最新推荐文章于 2023-02-24 19:15:21 发布