zoukankan      html  css  js  c++  java
  • MYSQL--事务处理

    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);
    ?>

     
  • 相关阅读:
    极大似然估计
    python模块的安装
    变异检测
    泰勒公式
    shell关于变量的操作
    Hadoop安装教程
    关于连接linux被拒
    靶向药
    层次聚类
    基因芯片原理
  • 原文地址:https://www.cnblogs.com/ldms/p/3890455.html
Copyright © 2011-2022 走看看