mysql事务处理用法与实例详解
来源:互联网 发布:java进阶路线 编辑:程序博客网 时间:2024/06/03 01:42
mysql事物处理实例
MYSQL的事务处理主要有两种方法
1.用begin,rollback,commit来实现
begin开始一个事务
rollback事务回滚
commit 事务确认
2.直接用set来改变mysql的自动提交模式
mysql默认是自动提交的,也就是你提交一个query,就直接执行!可以通过
set autocommit = 0 禁止自动提交
set autocommit = 1 开启自动提交
php代码实现事务的处理可以通过PHP预定义类mysqli的以下方法实现。
autocommit(boolean):该方法用于限定查询结果是否自动提交,如果该方法的参数为true则自动提交,如果参数为false则关闭自动提交。MySQL数据库默认为自动提交。
rollback():利用mysqli类中的该方法可以实现事务的回滚。
commit():利用该方法可以实现提交所有查询。
列一:
<?phpinclude_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"?>
列二
<?phprequire('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();?>
例3
MySQL的事务处理在处理实际问题中有着广泛且重要的应用,最常见的应用如银行转账业务、电子商务支付业务等等。但是,值得注意的是,MySQL的事务处理功能在MYSIAM存储引擎中是不支持的,在InnoDB存储引擎中是支持的。现在上传一段代码,作为引导认识MySQL事务处理的开始,简单的实例,但融汇思想,相信会有很大的帮助。
<span style="font-size:18px;"><strong><?php$conn=mysql_connect('localhost','root','yourpassword')or die(mysql_error());mysql_select_db('transaction',$conn);mysql_query('set names utf8');//创建事务mysql_query('START TRANSACTION') or die(mysql_error());$sqlA="update A set account=account-1";if(!mysql_query($sqlA)){ mysql_query('ROLLBACK') or exit(mysql_error());//判断当执行失败时回滚 exit();}$sqlB="update B set account=account+1";if(!mysql_query($sqlB)){ mysql_query('ROLLBACK') or exit(mysql_error());//判断当执行失败时回滚 exit();}mysql_query('COMMIT')or die(mysql_error());//执行事务mysql_close($conn);?></strong></span>
参考连接:http://www.cnblogs.com/ymy124/p/3718439.html
0 0
- mysql事务处理用法与实例详解
- mysql事务处理、加锁用法与实例详解
- mysql事务处理用法与实例详解
- mysql事务处理用法与实例详解
- mysql事务处理用法与实例详解
- mysql事务处理用法与实例详解
- mysql事务处理用法与实例详解
- mysql事务处理用法与实例详解
- mysql事务处理用法与实例详解
- mysql事务处理用法与实例详解
- mysql事务处理用法与实例详解
- mysql事务处理用法与实例详解
- mysql事务处理用法与实例
- mysql 事务处理用法和详解
- php事务处理mysql与PDO实例
- mysql事务处理 实例
- PHP mysql 事务处理实例
- mysql事务处理实例
- Python 学习随笔 2016.10.30
- BCD解密
- 表格输出
- SIGIR 2016 Improving Language Estimation with the Paragraph Vector Model for Ad-hoc Retrieval
- ICTIR 2016 Analysis of the Paragraph Vector Model for Information Retrieval
- mysql事务处理用法与实例详解
- CIKM 2016 aNMM: Ranking Short Answer Texts with Attention-Based Neural Matching Model
- 二分查找和递归@java
- 理解神经网络中的反向传播法
- MySQL自定义函数用法详解-复合结构自定义变量/流程控制
- Paint House II
- error while loading shared libraries的解決方法
- 百度地图坐标距离计算,源于百度地图JS API 2.0
- 数据结构——循环队列存储结构以及实现