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以mysqli方式连接类完整代码实例
本文所述的是一个在PHP中以mysqli方式连接数据库的一个数据库类实例,该数据库类是从一个PHP的CMS中整理出来的,可实现PHP连接数据库类,MySQLi版,兼容PHP4,对于有针对性需要的朋友可根据此代码进行优化和修改. <?php #================================================================================================== # Filename: /db/db_mysqli.php
-
php结合mysql与mysqli扩展处理事务的方法
本文实例讲述了php结合mysql与mysqli扩展处理事务的方法.分享给大家供大家参考,具体如下: 以下只是展示如何应用,具体用的时候要加上判断,如果都执行成功则提交,否则回滚 看前先分清mysqli与mysql扩展是不一样的 mysqli扩展处理事物: $mysqli=new mysqli('localhost','root','123456','test'); $mysqli->autocommit(false);//开始事物 $query="update a set money=m
-
php开启mysqli扩展之后如何连接数据库
Mysqli是php5之后才有的功能,没有开启扩展的朋友可以打开您的php.ini的配置文件. 查找下面的语句:;extension=php_mysqli.dll将其修改为:extension=php_mysqli.dll即可. 相对于mysql有很多新的特性和优势 (1)支持本地绑定.准备(prepare)等语法 (2)执行sql语句的错误代码 (3)同时执行多个sql (4)另外提供了面向对象的调用接口的方法. 下面一一用php实例进行mysqli数据库连接! 使用方法一:使用传统的面向过程
-
php使用mysqli向数据库添加数据的方法
本文实例讲述了php使用mysqli向数据库添加数据的方法.分享给大家供大家参考.具体实现方法如下: $mydb = new mysqli('localhost', 'username', 'password', 'databasename'); $sql = "INSERT INTO users (fname, lname, comments) VALUES ('$_POST[fname]', '$_POST[lname]', '$_POST[comments]')"; if ($m
-
php中数据库连接方式pdo和mysqli对比分析
1)总的比较 PDO MySQLi 数据库支持 12种不同的数据库支持 支持MySQL API OOP OOP + 过程 Connection Easy Easy 命名参数 支持 不支持 对象映射支持 支持 支持 预处理语句 (客户端) 支持 不支持 性能 快 快 支持存储过程 支持 支持 2 连接方式 先来看下两者连接数据库的方式: 复制代码 代码如下: // PDO $pdo = new PDO("mysql:host=localhost;dbname=database",
-
php+Mysqli利用事务处理转账问题实例
本文实例讲述了php+Mysqli利用事务处理转账问题的方法.分享给大家供大家参考.具体实现方法如下: <?php header("Content-type:text/html; charset=utf-8"); $mysqli = new mysqli("localhost", "root", "064319", "php"); $mysqli->set_charset("utf8&
-
php操作mysqli(示例代码)
<?php define("MYSQL_OPEN_LOGS",true); class mysqliHelp { private $db; public function __construct() { //如果要查询日志log的话,怎么办 } public function __get($name ) { //echo "__GET:",$name; if(in_array($name,array("d
-
PHP mysqli事务操作常用方法分析
本文实例讲述了PHP mysqli事务操作常用方法.分享给大家供大家参考,具体如下: 1. //打开(true)或关闭(false)本次数据库连接的自动命令提交事务模式 //参数如果设置为 FALSE,则表示关闭 auto-commit.如果设置为 TRUE,则表示开启 auto-commit(提交任何等待查询). bool mysqli::autocommit ( bool $mode ) 2. //回退当前事务 bool mysqli::rollback () 3. //提交一个事务 boo
-
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
本文实例讲述了PHP入门教程之使用Mysqli操作数据库的方法.分享给大家供大家参考,具体如下: Demo1.php <?php //使用 mysqli 对象操作数据库 //创建 mysqli 对象(资源句柄) $_mysqli = new mysqli(); //连接数据库 1.主机名(ip) 2.账户 3.密码 4.数据库 //mysqli_connect 函数 == $_mysqli -> connect(); $_mysqli -> connect('localhost','ro
-
PHP mysql与mysqli事务使用说明 分享
mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法. 应用比较多的地方是 mysqli的事务. 比如下面的示例: 复制代码 代码如下: $mysqli = new mysqli('localhost','root','','DB_Lib2Test');$mysqli->autocommit(false);//开始事物$mysqli->query($sql1);$mysqli->query($sql2);if(!$mysqli->errno){ $m
-
php封装的mysqli类完整实例
本文实例讲述了php封装的mysqli类.分享给大家供大家参考,具体如下: 类: <?php header('content-type:text/html;charset=utf-8'); /* 掌握满足单例模式的必要条件 (1)私有的构造方法-为了防止在类外使用new关键字实例化对象 (2)私有的成员属性-为了防止在类外引入这个存放对象的属性 (3)私有的克隆方法-为了防止在类外通过clone成生另一个对象 (4)公有的静态方法-为了让用户进行实例化对象的操作 */ class Connect
随机推荐
- AJAX初体验之上手篇
- Windows 文件类型与打开方式定义方法
- Windows 2000/XP 下巧拒强行关机的方法
- 手机短信轰炸(图)
- 微信小程序-详解微信登陆、微信支付、模板消息
- Python中unittest模块做UT(单元测试)使用实例
- 通过node-mysql搭建Windows+Node.js+MySQL环境的教程
- Windows下的PHP 5.3.x安装 Zend Guard Loader教程
- python使用7z解压软件备份文件脚本分享
- css Sprites小实例代码
- jquery下异步提交表单 异步跨域提交表单
- jsp SmartUpload 中文乱码问题解决
- 微信小程序 跳转页面的两种方法详解
- 用Move.js配合创建CSS3动画的入门指引
- 在centos5下安装配置VNC的具体操作步骤
- Java模拟HTTP Get Post请求实现论坛自动回帖功能
- 总结一些js自定义的函数
- CSS技巧DIV为空时占据空间的解决办法
- Android 防止多次重复点击的三种方法的示例
- java打印国际象棋棋盘的方法