<?php //事务控制,回滚 //创建一个mysqli对象 $mysqli = new MySQLi("主机名","mysql用户名","密码","数据库名"); //判断是否链接成功 if($mysqli->connect_error){ die($mysqli->connect_error); } //由于在事务提交中系统默认提交,故这里设置为FALSE先不提交 $mysqli->autocommit(false); //其实这里系统已经相当在这里做个保存点,记录此时所有状态,回滚是回滚到这里 //$mysqli->savepoint a; //写出对数据库的操作语句 $sql1 = "insert into 表名 (字段名) values (对应字段的值)"; $sql2 = "update 表名 set 字段名=值 where 条件"; $sql3 = "delete from 表名 where 条件"; //执行sql语句 $res1 = $mysqli->query($sql1) or die ($mysqli->error); $res2 = $mysqli->query($sql2) or die ($mysqli->error); $res3 = $mysqli->query($sql3) or die ($mysqli->error); //判断是否都执行成功 if(!$res1||!$res2||!$res3){ //只要有一条失败便回滚,都不执行,若设置滚回点,如a,加个参数a变滚回到a处 $mysqli->rollback(); }else{ //一旦提交无法回滚,成功则提交 $mysqli->commit(); } //关闭资源 $musqli->close(); ?>
php中对MYSQL操作之事务控制,回滚
时间: 2024-10-11 12:51:06