PHP 对 mysql 的事务处理

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

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Python3:sqlalchemy对mysql数据库操作,非sql语句

Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''