mysql事务处理

 

博客首页
警告:你的微三国主城告急
发博文

小胖之家

首页 博文目录 图片 关于我
个人资料
mysql事务处理_第1张图片 一周年勋章
小胖之家
Qing 微博

加好友 发纸条

写留言 加关注

  • 博客等级:
  • 博客积分:852
  • 博客访问:43,239
  • 关注人气:18
相关博文
  • Qing全新图片收集工具

    新浪Qing

  • 2012的第一次

    新浪Qing

  • 重庆啤酒公告:(1)NTCS

    老孟

  • “7·23”动车事故处理结果

    余财固

  • 胡长清书法

    海曲书画船

  • 两性之比较[幽默艺海]

    幽默乐天_69_雅野视界

  • 你好,2012。

    竹直先生

  • 水滴之上密不透风

    A-Margaret

  • 宿迁市领导考察乔杨社区

    乔杨新村

更多>>
推荐博文
  • cn地方域名-站长的新宠

    百度推广放大器

  • 雪花形状大揭秘

    杨孝文

  • 新知:口香糖可以预防耳部感染

    康斯坦丁

  • 关于惠普webOS的再思考

    袁萌

  • 清场与设槛:2011年为何仍是iP

    孙永杰

  • 限网友自制iPhone投影仪

    李小杰

  • 云里的城市

    张亚勤

  • “双十二”再次引爆促销热潮

    小刀马

  • 惠普webOS既要开源也要硬件辅助

    于斌

  • 自然用户界面自然在哪儿?

    微软亚洲研究院

  • 南极包饺子欢度破五

    南极包饺子欢度破五

  • 南极浮冰上玩耍的企鹅

    南极浮冰上玩耍的企鹅

  • 中国近海海水不蓝不清

    中国近海海水不蓝不清

  • 柯达老照片记录历史

    柯达老照片记录历史

查看更多>>
谁看过这篇博文

坐望于光阴的倆岸

坐望于…

1月12日

Hercules

Hercules

1月12日

szhbpksht

szhbpk…

1月11日

server

server

12月14日

飞烟鸿

飞烟鸿

10月13日

冰峰博客

冰峰博客

10月13日

人大代表

人大代表

10月10日

重庆方智笔记本维修

重庆方…

9月29日

ljhynlp

ljhynlp

8月24日

jingguo1024

jinggu…

8月17日

不倒翁

不倒翁

4月29日

道道妈

道道妈

4月29日

正文 字体大小:大

mysql事务处理 实例

(2009-07-27 17:53:54)
转载▼
标签:

php

事务

处理

实例

it

分类: Mysql数据库

mysql事务处理

mysql事务处理的意义

事务处理机制在程序开发过程中有着非常重要的作用,它可以使整个系统更加安全,例如在银行处理转账业务时,如果A账户中的金额刚被发出,而B账户还没来得及接收就发生停电,这会给银行和个人带来很大的经济损失。采用事务处理机制,一旦在转账过程中发生意外,则程序将回滚,不做任何处理。
 
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结束,注意当你结束这个事务的同时也开启了新的事务!按第一种方法只将当前的做为一个事务!
MYSQL只有 INNODB和BDB类型的数据表才支持事务处理,其他的类型是不支持的!
MYSQL5.0 WINXP下测试通过~  ^_^

    mysql> use test;
    Database changed
    mysql> CREATE TABLE `dbtest`(
    -> id int(4)
    -> ) TYPE=INNODB;
Query OK, 0 rows affected, 1 warning (0.05 sec)

mysql> select * from dbtest
    -> ;
Empty set (0.01 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into dbtest values(5);
Query OK, 1 row affected (0.00 sec)

mysql> insert into dbtest value(6);
Query OK, 1 row affected (0.00 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from dbtest;
+------+
| id   |
+------+
|    5 |
|    6 |
+------+
2 rows in set (0.00 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into dbtest values(7);
Query OK, 1 row affected (0.00 sec)

mysql> rollback;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from dbtest;
+------+
| id   |
+------+
|    5 |
|    6 |
+------+
2 rows in set (0.00 sec)

mysql>
 

mysql事务处理php代码

实现事务的处理可以通过PHP预定义类mysqli的以下方法实现。
autocommit(boolean):该方法用于限定查询结果是否自动提交,如果该方法的参数为true则自动提交,如果参数为false则关闭自动提交。MySQL数据库默认为自动提交。
rollback():利用mysqli类中的该方法可以实现事务的回滚。
commit():利用该方法可以实现提交所有查询。
include_once("conn.php");

$id=$_GET[id];
$conn->autocommit(false);
if(!$conn->query("delete from tb_sco where id='".$id."'"))
{
  $conn->rollback();
}
if(!$conn->query("delete from tb_stu where id='".$id."'"))
{
  $conn->rollback();
}
  $conn->commit();
  $conn->autocommit(true);
  echo "ok"
?>
 
列二
require('connectDB.php'); //建立数据库连接
mssql_query("BEGIN TRANSACTION DEPS02_DEL"); //开始事务
$delete_dep_sql="DELETE FROM TBLDEPARTMENT WHERE DEPTID='{$_GET[deptid]}'";
// echo $delete_dep_sql."
";
mssql_query($delete_dep_sql); //操作数据库
// var_dump($del_result);

$delete_result = mssql_query("select @@ROWCOUNT as id");
$delete_info = mssql_fetch_array($delete_result);
$delete_rows = $delete_info[0];
// var_dump($delete_rows);
mssql_free_result($delete_result);

echo "";
mssql_close();
?>
php+mssql 的事务处理主要是以mssql的语言实现,php只是给其提供个与数据库对话的空间,如果以{BEGIN TRANSACTION }开始,后续的mssql就在该事务期间里,等待提交或回滚得指令;如果不在事务期间内就每个语句直接操作数据库。

0

阅读 (981) 评论 (0) 收藏 (0) 转载 (2) 打印 举报
已投稿到:
排行榜 圈子

转载列表:

转载

转载是分享博文的一种常用方式...

前一篇: MySQL触发器简介
后一篇: MySql存储例程、存储过程进阶学习
评论 重要提示:警惕虚假中奖信息|[商讯]30台春晚一站看,订阅有奖
[发评论]
  • 评论加载中,请稍候...
发评论 [商讯]爱心签名换梦想,天天派奖|[商讯]提高博客人气新方法
热门表情 小新小浪 中粮美好生活 管不着和了不起 奇童梦乐 兔斯基
更多>>
  • 春节
  • 春节快乐
  • 我爸是李刚
  • 千年极寒
  • 路过
  • 灌水
  • 无语
  • 无聊

登录名:密码:找回密码 注册 记住登录状态

昵   称:

分享到微博    评论并转载此博文

验证码:请点击后输入验证码 收听验证码

匿名评论
发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

< 前一篇 MySQL触发器简介
后一篇 > MySql存储例程、存储过程进阶学习
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有

微语录

九宫格

发照片

发视频

 

  • 综合
  • 博文
  • 博主
  • 音乐
  • 视频
  • 播主
  • 群组
最近顶了的博主:
加载中…
  • Qing
  • 博客
  • 转载原文

 

为了您的账号安全,请 绑定邮箱

你可能感兴趣的:(mysql)