php+mysqli事务控制实现银行转账实例_php技巧

本文实例讲述了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
, mysqli
, 银行
, 事务控制
转账
mysqli 事务、php mysqli 事务、mysqli实例、sql事务实例、mysql事务处理实例,以便于您获取更多的相关知识。

时间: 2024-08-18 14:06:05

php+mysqli事务控制实现银行转账实例_php技巧的相关文章

php+mysqli事务控制实现银行转账实例

 这篇文章主要介绍了php+mysqli事务控制实现银行转账,实例分析了事物控制的原理与事物回滚的使用技巧,需要的朋友可以参考 本文实例讲述了php+mysqli事务控制实现银行转账的方法.分享给大家供大家参考.具体分析如下: 事务控制,也就是说所有的语句执行成功后,才会提交.否则,如果前面有语句执行成功,而后面没有执行成功,则回滚到执行之前的状态.通过银行转账的案例来说明这个应用.一个账号转了钱出去,另一个账号必须有钱转入,这样才算成功. 代码如下:   1 2 3 4 5 6 7 8 9 1

php+Mysqli利用事务处理转账问题实例_php技巧

本文实例讲述了php+Mysqli利用事务处理转账问题的方法.分享给大家供大家参考.具体实现方法如下: <?php header("Content-type:text/html; charset=utf-8"); $mysqli = new mysqli("localhost", "root", "064319", "php"); $mysqli->set_charset("utf8&

php实现的美国50个州选择列表实例_php技巧

本文实例讲述了php实现的美国50个州选择列表.分享给大家供大家参考.具体如下: 这里展示的是php生成的美国50个州的选择列表,自动选择当前州 <select name="state" id="state"> <option value="AL" <?PHP if($state=="AL") echo "selected";?>>Alabama</option&g

php将图片保存为不同尺寸图片的图片类实例_php技巧

本文实例讲述了php将图片保存为不同规格的图片类.分享给大家供大家参考.具体如下: 图片处理类.imagecls.php如下: <?php /** 图片处理类 */ class imagecls { /** * 文件信息 */ var $file = array(); /** * 保存目录 */ var $dir = ''; /** * 错误代码 */ var $error_code = 0; /** * 文件上传最大KB */ var $max_size = -1; function es_i

php判断linux下程序问题实例_php技巧

本文实例讲述了php判断linux下程序问题.分享给大家供大家参考.具体如下: 有时候在服务器上面写一些脚本的时候,经常要放到crontab里面定时运行.时间长了就有一个问题,那就是程序重复运行消耗太多的资源,怎么处理呢?下面璞玉写了两种方法. //第一种:用linux里面的正则匹配 function ifrun($clsname,$bf = 0) { //下面进行检测,如有一个进程正在运行,则不运行 $str=shell_exec("/bin/ps ax > /home/root/&qu

php实现用于计算执行时间的类实例_php技巧

本文实例讲述了php实现用于计算执行时间的类.分享给大家供大家参考.具体如下: 有了这个php类,计算函数或者一段代码的执行时间就简单了 <?php class c_Timer { var $t_start = 0; var $t_stop = 0; var $t_elapsed = 0; function start() { $this->t_start = microtime(); } function stop() { $this->t_stop = microtime(); }

php+mysqli使用面向对象方式查询数据库实例_php技巧

本文实例讲述了php+mysqli使用面向对象方式查询数据库的方法.分享给大家供大家参考.具体实现方法如下: <?php //第一步:创建数据连接对象 $mysqli = new MySQLi("localhost","root","123456"); //默认的 MySQL的类,其属性与方法见手册 if($mysqli->connect_error){//connect_error为属性,报错 die("数据库连接失败:&

php+mysqli使用面向对象方式更新数据库实例_php技巧

本文实例讲述了php+mysqli使用面向对象方式更新数据库的方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php //第一步:创建数据连接对象 $mysqli = new MySQLi("localhost","root","123456");//默认的 MySQL的类,其属性与方法见手册 if($mysqli->connect_error){//connect_error为属性,报错  die(&quo

PHP实现基于mysqli的Model基类完整实例_php技巧

本文实例讲述了PHP实现基于mysqli的Model基类.分享给大家供大家参考,具体如下: DB.class.php <?php //数据库连接类 class DB { //获取对象句柄 static public function getDB() { $_mysqli = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME); if (mysqli_connect_errno()) { echo '数据库连接错误!错误代码:'.mysqli_connect_e