mysql>mysql事务处理php代码实现事务的处理可以通过PHP预定义类mysqli的以下方法实现。
autocommit(boolean):该方法用于限定查询结果是否自动提交,如果该方法的参数为true则自动提交,如果参数为false则关闭自动提交。MySQL数据库默认为自动提交。
rollback():利用mysqli类中的该方法可以实现事务的回滚。
commit():利用该方法可以实现提交所有查询。
<?php include\_once("conn.php"); $id=$\_GET\[id\]; $conn->autocommit(false); // 设置为手动提交事务 if(!$conn->query("delete from tb\_sco where id='".$id."'")) { $conn->rollback(); // 提交事务//发生错误 事务回滚 } if(!$conn->query("delete from tb\_stu where id='".$id."'")) { $conn->rollback(); //发生错误 事务回滚 } $conn->commit(); //提交事务 $conn->autocommit(true); // 设置事务为手动 echo "ok" ?>列二
<?php require('connectDB.php'); //建立数据库连接 mssql\_query("BEGIN TRANSACTION DEPS02\_DEL"); //开始事务 $delete\_dep\_sql="DELETE FROM TBLDEPARTMENT WHERE DEPTID='{$\_GET\[deptid\]}'"; // echo $delete\_dep\_sql."<br>"; mssql\_query($delete\_dep\_sql); //操作数据库 // var\_dump($del\_result); $delete\_result = mssql\_query("select @@ROWCOUNT as id"); $delete\_info = mssql\_fetch\_array($delete\_result); $delete\_rows = $delete\_info\[0\]; // var\_dump($delete\_rows); mssql\_free\_result($delete\_result); echo "<script language=javascript>"; if(true){ //判断是否回滚提交 mssql\_query("COMMIT TRANSACTION DEPS02\_DEL"); //提交事务 echo "alert('delete success!');"; }else{ mssql\_query("ROLLBACK TRANSACTION DEPS02\_DEL"); //回滚事务 echo "alert('delete faile!');"; } echo "</script>";mssql\_close(); ?>php+mssql 的事务处理主要是以mssql的语言实现,php只是给其提供个与数据库对话的空间,如果以{BEGIN TRANSACTION }开始,后续的mssql就在该事务期间里,等待提交或回滚得指令;如果不在事务期间内就每个语句直接操作数据库。
原文复制与 http://hi.baidu.com/mevyen/item/51f413945d2295d81a49dfac