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 相关文章推荐
PHP中的串行化变量和序列化对象
Sep 05 PHP
强烈推荐:php.ini中文版(2)
Oct 09 PHP
PHP与SQL注入攻击[三]
Apr 17 PHP
php 调试利器debug_print_backtrace()
Jul 23 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
Jan 13 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
thinkphp普通查询与表达式查询实例分析
Nov 24 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
PHP验证码生成原理和实现
Jan 24 PHP
php数据访问之查询关键字
May 09 PHP
Yii框架日志记录Logging操作示例
Jul 12 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+DBM的同学录程序(2)
2006/10/09 PHP
php微信开发之图片回复功能
2018/06/14 PHP
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
2015/10/13 Javascript
vue如何判断dom的class
2018/04/26 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python快速排序算法实例分析
2017/11/29 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
简单分析python的类变量、实例变量
2019/08/23 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
浅析matlab中imadjust函数
2020/02/27 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
中科软测试工程师面试题
2012/06/16 面试题
大学生毕业自我鉴定
2013/11/06 职场文书
党日活动总结
2014/05/07 职场文书
工程造价专业求职信
2014/07/17 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
硕士学位论文评语
2014/12/31 职场文书
2015年档案室工作总结
2015/05/23 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
MySQL系列之八 MySQL服务器变量
2021/07/02 MySQL
深入理解go slice结构
2021/09/15 Golang
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
速龙x4-860k处理器相当于i几
2022/04/20 数码科技