mysqli事务处理demo

本文介绍了一个使用PHP进行转账操作的示例代码,演示了如何利用MySQL的事务处理来确保转账过程中数据的一致性和安全性。通过具体的SQL语句更新账户余额,并在事务中检查操作是否成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php  $mysqli=new mysqli("localhost", "root", "123456", "xsphpdb");

 //关闭自动提交 $mysqli->autocommit(0);

 $error=true;

 $price=50;

 $sql="update zh set ye=ye-{$price} where name='zhangsan'";    $result=$mysqli->query($sql);

 if(!$result){   $error=false;   echo "从张三转出失败<br>";  }else{   if($mysqli->affected_rows==0){    $error=false;    echo "张三的钱没有变化";    }else{    echo "从张三账号中转出成功!<br>";   }  }

 

 $sql="update zh set ye=ye+{$price} where name='lisi1'";

 $result=$mysqli->query($sql);

 if(!$result){   $error=false;   echo "从李四转入失败<br>";  }else{   if($mysqli->affected_rows==0){    $error=false;    echo "李四的钱没有变化";    }else{    echo "向李四账号中转入成功!<br>";   }  }

 if($error){   echo "转账成功!";   $mysqli->commit();  }else{   echo "转账失败!";   $mysqli->rollback();  }

 $mysqli->autocommit(1);//完成后开启自动提交  $mysqli->close();

注意:操作的数据表的存储引擎(表类型)必须是InnoDB或者是BDB(不常用),因为只有这两类型的表才支持事务处理。修改数据表类型alter table demo type=InnoDB;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值