php+mysqli事务控制实现银行转账实例
更新时间:2015年01月29日 15:40:31 作者:php之路
这篇文章主要介绍了php+mysqli事务控制实现银行转账,实例分析了事物控制的原理与事物回滚的使用技巧,需要的朋友可以参考下
本文实例讲述了php+mysqli事务控制实现银行转账的方法。分享给大家供大家参考。具体分析如下:
事务控制,也就是说所有的语句执行成功后,才会提交。否则,如果前面有语句执行成功,而后面没有执行成功,则回滚到执行之前的状态。通过银行转账的案例来说明这个应用。一个账号转了钱出去,另一个账号必须有钱转入,这样才算成功。
代码如下:
<?php
//1、创建数据库连接对象
$mysqli = new MySQLi("localhost","root","123456","liuyan");
if($mysqli->connect_error){
die($mysqli->connect_error);
}
$mysqli->query("set names 'GBK'");
$mysqli->autocommit(false);
//首先设置autocommit为false,也就是不自动提交
$sql1 = "update account set balance=balance-2 where id=1;";
$sql2 = "update account set balance=balance+2 where id=2;";
$res1 =$mysqli->query($sql1) or die($mysqli->error);
$res2 =$mysqli->query($sql2) or die($mysqli->error);
if(!$res1 || !$res2){
echo "转账失败";
$mysqli->rollback();//如果有一条不成功,则回滚
}else{
$mysqli->commit();//两条语句都执行成功,则提交
echo "转账成功";
}
?>
希望本文所述对大家的php程序设计有所帮助。
相关文章
php ignore_user_abort与register_shutdown_function 使用方法
php ignore_user_abort与register_shutdown_function 使用方法小结。2009-06-06
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
为了php连接sql2005 ,我在网络上找了一大堆资料在我的csdn博客中.晚上3:05分时候终于搞定了2012-07-07


最新评论