码迷,mamicode.com
首页 > 数据库 > 详细

MYSQL--事务处理

时间:2014-08-04 17:14:07      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:blog   使用   os   io   for   cti   ar   div   

1、用begin,rollback,commit来实现

  begin 开始一个事务

  rollback 事务回滚

  commit  事务确认

2、直接用set来改变mysql的自动提交模式

       MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过

       set autocommit=0   禁止自动提交

        set autocommit=1 开启自动提交

   来实现事务的处理。

但注意当你用 set autocommit=0 的时候,你以后所有的SQL都将做为事务处理,

直到你用commit确认或rollback结束,注意当你结束这个事务的同时也开启了个新的事务!按第一种方法只将当前的作为一个事务!

个人推荐使用第一种方法!


[PHP]
function Tran( $sql ) {
         $judge = 1;
         mysql_query(‘begin‘);
         foreach ($sql as $v) {
                 if ( !mysql_query($v) ) {
                         $judge = 0;
                 }
         }
         if ($judge == 0) {
                 mysql_query(‘rollback‘);
                 return false;
         }
         elseif ($judge == 1) {
                 mysql_query(‘commit‘);
                 return true;
         }
}
[/PHP]

************************************************

<?php
$handler=mysql_connect("localhost","root","");
mysql_select_db("task");
mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行
mysql_query("BEGIN");//开始事务定义
if(!mysql_query("insert into trans (id) values(‘2‘)"))
{
mysql_query("ROOLBACK");//判断当执行失败时回滚
}
if(!mysql_query("insert into trans (id) values(‘4‘)"))
{
mysql_query("ROOLBACK");//判断执行失败回滚
}
mysql_query("COMMIT");//执行事务
mysql_close($handler);
?>

 

 
 

MYSQL--事务处理,布布扣,bubuko.com

MYSQL--事务处理

标签:blog   使用   os   io   for   cti   ar   div   

原文地址:http://www.cnblogs.com/ldms/p/3890455.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!