zoukankan      html  css  js  c++  java
  • php 事物处理

    一:php事物的用法已经场景(我的理解)
    1>高并发,下防止服务器压力过大导致sql执行不成功
    2>转账业务,a客户给b客户进行了转账并且扣除了a账户的钱,但是b账户确没有收到,
    3>订单业务,
    二:在做事物之前,大家要知道只有储存引擎为innoDB,才支持事物,所以
    1> show create table 表名; // 查看某个表的储存引擎是否为innoDB
    2> alter table 表名 engine=InnoDB; //把表的储存引擎修改成innoDB
    三:事物处理的过程:
    1>mysql的默认sql自动提交的,我们用事物的目的就是,不让sql自动提交,而只有
    commit时才执行sql,而sql一旦出错rollback(回滚),所以这样执行多条sql就会出现如果
    成功就会都成功,有一条sql失败,就会全部失败!
    2>也可以直接用set来改变mysql的自动提交模式
    MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过
    set autocommit=0 禁止自动提交
    set autocommit=1 开启自动提交
    四:下面是我做的测试:
    $conn = mysql_connect('123.207.171.186','shopp','******') or die ("数据连接错误!!!");
    mysql_select_db('shopp',$conn);
    mysql_query("set names 'GBK'"); //使用GBK中文编码;
    //开始一个事务
    mysql_query("BEGIN"); //或者mysql_query("START TRANSACTION");
    $sql = "INSERT INTO `ecs_order_goods` (`order_id`) VALUES ('222')";
    $sql2 = "INSERT INTO `ecs_order_info` (`order_sn`) VALUES ('222')"; //这条我故意写错
    $res = mysql_query($sql);
    $res1 = mysql_query($sql2);
    if($res && $res1){
    mysql_query("COMMIT");
    echo '提交成功。';
    }else{
    mysql_query("ROLLBACK");
    echo '数据回滚。';
    }
    mysql_query("END");

  • 相关阅读:
    将IIS中网站日志批量导入到mysql【python】
    Python网站日志分析
    python 获取文件版本号和修改时间
    python将IIS日志导入到SQL
    python2.7 MySQLdb模块在win32下安装
    《python核心编程》课后题第二版第十五章463页
    python批量文件重命名
    python随机生成彩票号码
    python获取IP归属地
    百度收录批量查询【python版】
  • 原文地址:https://www.cnblogs.com/taikongliu/p/6672517.html
Copyright © 2011-2022 走看看