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 相关文章推荐
编译问题
Oct 09 PHP
如何分别全角和半角以避免乱码
Oct 09 PHP
php基础知识:类与对象(5) static
Dec 13 PHP
基于php缓存的详解
May 15 PHP
php调用C代码的实现方法
Mar 11 PHP
php计算两个日期相差天数的方法
Mar 14 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 PHP
PHP入门教程之会话控制技巧(cookie与session)
Sep 11 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
Nov 15 PHP
Yii2框架加载css和js文件的方法分析
May 25 PHP
解决laravel session失效的问题
Oct 14 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
select标签模拟/美化方法采用JS外挂式插件
2013/04/01 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
Python入门篇之正则表达式
2014/10/20 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
HTML5图片层叠的实现示例
2020/07/07 HTML / CSS
Glamest意大利:女性在线奢侈品零售店
2019/04/28 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
生物化工专业个人自荐信
2013/09/26 职场文书
团队精神演讲稿
2013/12/31 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
新手初学Java List 接口
2021/07/07 Java/Android
mysql函数全面总结
2021/11/11 MySQL