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

     
  • 相关阅读:
    ibatis插入正确但查询不出数据的问题
    Java 动态代理机制分析及扩展--转
    java实现插入排序算法 附单元测试源码
    unix基础知识
    作为大数据和云计算学习的一个序吧
    Understanding JVM Internals---不得不转载呀
    回文推理
    java 正则表达式提取html纯文本
    OpenCV功能界面和示例
    【POJ3268】Silver Cow Party 最短
  • 原文地址:https://www.cnblogs.com/ldms/p/3890455.html
Copyright © 2011-2022 走看看