• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

mysql之事务

事务处理

begin        开始一个事物

commit        事务确认

rollback    事务回滚

end        事务结束

innodb下可以实现事务

开始执行事务时如果在事务执行的过程中出现错误那么事务会回滚之前执行的都会失效

在创建表时,就可以为table选择InnoDB引擎了。如果是以前创建的表,可以使用

alter table table_name engine=InnoDB来改变数据表的引擎以支持事务。

例:

<?php

    $conn = mysql_connect('localhost','root','') or die ("数据连接错误!!!");

    mysql_select_db('shop',$conn);

    mysql_query("set names 'utf8'"); //使用utf8中文编码;

    //开始一个事务

    mysql_query("BEGIN"); //或者mysql_query("START TRANSACTION");

    $sql = "INSERT INTO main (num) VALUES (123)";

    $sql2 = "INSERT INTO main (num1) VALUES (456)";//这条我故意写错

    //如果不用事务或者用的而不是innodb引擎则$sql会成功$sql2会失败

    //用事务如果其中一条出现错误那么两条数据都不会执行成功

    $res = mysql_query($sql);

    $res1 = mysql_query($sql2);  

    if($res && $res1){

    mysql_query("COMMIT");

    echo '提交成功。';

    }else{

    mysql_query("ROLLBACK");

    echo '数据回滚。';

    }

    mysql_query("END");

?>

posted @ 2013-08-23 19:32  Class Xman  阅读(148)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3