PHP mysqli事务操作常用方法分析


Posted in PHP onJuly 22, 2017

本文实例讲述了PHP mysqli事务操作常用方法。分享给大家供大家参考,具体如下:

1、

//打开(true)或关闭(false)本次数据库连接的自动命令提交事务模式
//参数如果设置为 FALSE,则表示关闭 auto-commit。如果设置为 TRUE,则表示开启 auto-commit(提交任何等待查询)。
bool mysqli::autocommit ( bool $mode )

2、

//回退当前事务
bool mysqli::rollback ()

3、

//提交一个事务
bool mysqli::commit ()

4、

//关闭先前打开的数据库连接
bool mysqli::close ()

5、

//对数据库执行一次查询
//失败时返回 FALSE,通过mysqli_query() 成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN查询会返回一个mysqli_result 对象,其他查询则返回TRUE
//参数$resultmode可选。一个常量。可以是下列值中的任意一个:
//MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)
//MYSQLI_STORE_RESULT(默认)
mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

代码示例:

<?php
$mysqli = new mysqli("127.0.0.1","root","111111","test");
if ($mysqli->connect_errno){
  echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}
//默认auto-commit 是打开的,可直接提交sql语句
$b1 = $mysqli->query("INSERT INTO test (id,name) values (0,'000')");
//若要执行事务,先关闭auto-commit
//关闭 auto-commit
$mysqli->autocommit(false);
$res1 = $mysqli->query("INSERT INTO test (id,n1ame) values (1,'111')");
$b2 = $mysqli->query("INSERT INTO test (id,name) values (2,'222')");
//有一条失败则回滚,全部成功则提交
if(!$res1 || !$b2){
  echo '回滚!';
  $mysqli->rollback();
} else {
  echo '提交!';
  $mysqli->commit();
}
//若想再次自动提交非事务语句,要打开auto-commit
$mysqli->autocommit(true);
$b3 = $mysqli->query("INSERT INTO test (id,name) values (3,'333')");
//关闭连接
$mysqli->close();
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
FCKeditor的安装(PHP)
Jan 13 PHP
PHP 动态随机生成验证码类代码
Apr 09 PHP
Windows 下的 PHP-PEAR 安装方法
Nov 20 PHP
上传文件先创建目录 再上传到目录里面去
Dec 29 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
Jun 26 PHP
PHP中使用hidef扩展代替define提高性能
Apr 09 PHP
让你的PHP7更快之Hugepage用法分析
May 31 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
PHP检测数据类型的几种方法(总结)
Mar 04 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 PHP
php 的多进程操作实践案例分析
Feb 28 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 #PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 #PHP
PHP编程快速实现数组去重的方法详解
Jul 22 #PHP
php使用ftp实现文件上传与下载功能
Jul 21 #PHP
YII2框架中excel表格导出的方法详解
Jul 21 #PHP
实例讲解YII2中多表关联的使用方法
Jul 21 #PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 #PHP
You might like
PHP实现的sqlite数据库连接类
2014/12/12 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
js 文件引入实现代码
2010/04/23 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
jquery 根据name名获取元素的value值
2015/02/27 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
从django的中间件直接返回请求的方法
2018/05/30 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
python基础教程之while循环
2019/08/14 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
建筑公司员工自我鉴定
2014/04/08 职场文书
地方白酒代理协议书
2014/10/25 职场文书
书法社团活动总结
2015/05/07 职场文书
监守自盗观后感
2015/06/10 职场文书