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 相关文章推荐
c#中的实现php中的preg_replace
Dec 21 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 PHP
php与mysql建立连接并执行SQL语句的代码
Jul 04 PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
Apr 20 PHP
yii2多图上传组件的使用教程
May 10 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
Oct 22 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
Apr 23 PHP
如何在Mac上通过docker配置PHP开发环境
May 29 PHP
详解Laravel服务容器的优势
May 29 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
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
JavaScript中常见陷阱小结
2010/04/27 Javascript
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
js读取配置文件自写
2014/02/11 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
python实现通过shelve修改对象实例
2014/09/26 Python
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
python多线程扫描端口(线程池)
2019/09/04 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
Python文件操作基础流程解析
2020/03/19 Python
基于python 凸包问题的解决
2020/04/16 Python
法院实习人员自我鉴定
2013/09/26 职场文书
园林施工员岗位职责
2013/12/11 职场文书
大学生暑期实践感言
2014/02/26 职场文书
班主任新年寄语
2014/04/04 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
中学教代会开幕词
2016/03/04 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python
Python面试不修改数组找出重复的数字
2022/05/20 Python