zoukankan      html  css  js  c++  java
  • PHP 实现事务处理

    /*************** transaction--1 ***************/
    $conn = mysql_connect('localhost','root','root') or die ("数据连接错误!!!");
    mysql_select_db('test',$conn);
    mysql_query("set names 'GBK'"); //使用GBK中文编码;
    //开始一个事务
    mysql_query("BEGIN"); //或者mysql_query("START TRANSACTION");
    $sql = "INSERT INTO `user` (`id`, `username`, `sex`) VALUES (NULL, 'test1', '0')";
    $sql2 = "INSERT INTO `user` (`did`, `username`, `sex`) VALUES (NULL, 'test1', '0')";//这条我故意写错
    $res = mysql_query($sql);
    $res1 = mysql_query($sql2);
    if($res && $res1){
    mysql_query("COMMIT");
    echo '提交成功。';
    }else{
    mysql_query("ROLLBACK");
    echo '数据回滚。';
    }
    mysql_query("END");
    /**************** transaction--2 *******************/
    /*方法二*/
    mysql_query("SET AUTOCOMMIT=0"); //设置mysql不自动提交,需自行用commit语句提交
    $sql = "INSERT INTO `user` (`id`, `username`, `sex`) VALUES (NULL, 'test1', '0')";
    $sql2 = "INSERT INTO `user` (`did`, `username`, `sex`) VALUES (NULL, 'test1', '0')";//这条我故意写错
    $res = mysql_query($sql);
    $res1 = mysql_query($sql2);
    if($res && $res1){
    mysql_query("COMMIT");
    echo '提交成功。';
    }else{
    mysql_query("ROLLBACK");
    echo '数据回滚。';
    }
    mysql_query("END"); //事务处理完时别忘记mysql_query("SET AUTOCOMMIT=1");自动提交

  • 相关阅读:
    c#隐藏和重写基类方法的区别
    c#事件(续委托之后)
    c# 中接口和抽象类的区别
    call 和apply 的一个记录
    string 和 stringbuilder 的区别
    传值和传引用
    值类型和引用类型
    标签选择器与字体连写
    input表单案例
    codeforces 676B B. Pyramid of Glasses(模拟)
  • 原文地址:https://www.cnblogs.com/myblog1314/p/3119010.html
Copyright © 2011-2022 走看看