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 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
Dec 07 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
Jun 13 PHP
PHP开发框架Laravel数据库操作方法总结
Sep 03 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
ThinkPHP整合百度Ueditor图文教程
Oct 21 PHP
PHP计算日期相差天数实例分析
Feb 23 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
May 28 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
php中使用array_filter()函数过滤数组实例讲解
Mar 03 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&amp;mysql(三)
2006/10/09 PHP
PHP面向对象精要总结
2014/11/07 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
JavaScript实现动态留言板
2020/03/16 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
定制FileField中的上传文件名称实例
2017/08/23 Python
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
python识别验证码图片实例详解
2020/02/17 Python
django从后台返回html代码的实例
2020/03/11 Python
DRF框架API版本管理实现方法解析
2020/08/21 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
python飞机大战游戏实例讲解
2020/12/04 Python
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
简单介绍Object类的功能、常用方法
2013/10/02 面试题
民政局离婚协议书范本
2014/10/20 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
教你一步步实现一个简易promise
2021/11/02 Javascript