Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->Linux程序设计 ->正文

用新的PHP插件实现MySQL为基础的事务

来源:zdnet 作者:Melonfire, Builder  时间:2007-04-22 点击: [收藏] [投稿]

  while ($row = mysqli_fetch_assoc($result)) {

  $accounts[] = $row;

  }

  // close connection

  mysqli_close($dbh);

  ?>

  

  

  

  

TRANSFER

  

  Transfer $ from

  

  to

  

  

  

  

ACCOUNT BALANCES

  

  

  foreach ($accounts as $a) {

  echo "

";

  }

  ?>

  

" . $a['label'] . " " . $a['balance'] . "

  

像你所看到的那样,脚本以连接数据库和关闭自动提交开始。然后执行一个SELECT查询,检索所有帐户的现金收支,接着构造一个有下拉式界面的表格,选择交易要用到的来源/目标帐户。图表A显示了最初的表格。

图表 A

最初的表格

一旦表格完成并提交后,两个UPDATE查询就开始实际执行借和贷操作。注意每一个查询的尾端都带有一个mysqli_rollback(),如果查询失败的话,它将被激活。假设没有查询失败的话,新的收支表就通过调用mysqli_commit()储存到数据库中。那时数据库连接就被关闭。

你可以自己试一下,从Savings #1转$500到Current #2。一旦你执行转帐之后,你将看到如图表B所示的平衡表的新结果。

图表 B

交易完成之后的状况

提示:当然,这只是一个简单的双命令的事务。通常,当有许多SQL语句要一起执行的时候,你可以用这种事务模型,一个语句的失败对其他语句有串联的影响。在这些情况下,你会发现将mysqli_query()mysqli_rollback()的调用压缩到一个单独的用户自定义的函数中,需要的时候调用它会更加简便。

正如你所看到的那样,用PHP和MySQL执行一个事务处理模型可以使你的MySQL数据库对查询执行的错误更稳固。但是,在你开始动手重写代码和使用这个模型之前,值得注意的是,事务确实会增加系统性能管理的消耗,所以,在实现这个模型之前,做一个成本效益分析始终是个好主意。

  

原文链接:http://www.zdnet.com.cn/developer/webdevelop/story/0,3800067013,39527643,00.htm



 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:GNU 线性编程工具包(线性优化简介)   下一篇:Apache和Subversion 搭建安全CVS

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号