php中对MYSQL操作之事务控制,回滚

来源:互联网 发布:流量攻击软件 编辑:程序博客网 时间:2024/04/30 19:24
  1. <?php  
  2. //事务控制,回滚  
  3.   
  4. //创建一个mysqli对象  
  5. $mysqli = new MySQLi("主机名""mysql用户名""密码","数据库名");  
  6.   
  7. //判断是否链接成功  
  8. if($mysqli->connect_error){  
  9.     die($mysqli->connect_error);  
  10. }  
  11. //由于在事务提交中系统默认提交,故这里设置为FALSE先不提交  
  12. $mysqli->autocommit(false);  
  13.   
  14. //其实这里系统已经相当在这里做个保存点,记录此时所有状态,回滚是回滚到这里  
  15. //$mysqli->savepoint a;  
  16.   
  17. //写出对数据库的操作语句  
  18. $sql1 = "insert into 表名 (字段名) values (对应字段的值)";  
  19. $sql2 = "update 表名 set 字段名=值 where 条件";  
  20. $sql3 = "delete from 表名 where 条件";  
  21.   
  22. //执行sql语句  
  23. $res1 = $mysqli->query($sql1or die ($mysqli->error);  
  24. $res2 = $mysqli->query($sql2or die ($mysqli->error);  
  25. $res3 = $mysqli->query($sql3or die ($mysqli->error);  
  26.   
  27. //判断是否都执行成功  
  28. if(!$res1||!$res2||!$res3){  
  29.     //只要有一条失败便回滚,都不执行,若设置滚回点,如a,加个参数a变滚回到a处  
  30.     $mysqli->rollback();  
  31. }else{  
  32.     //一旦提交无法回滚,成功则提交  
  33.     $mysqli->commit();  
  34. }  
  35.   
  36. //关闭资源  
  37. $musqli->close();  
  38. ?>  
0 0