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 相关文章推荐
mysql建立外键
Nov 25 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
Jul 02 PHP
ThinkPHP视图查询详解
Jun 30 PHP
PHP实现股票趋势图和柱形图
Feb 07 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
Mar 19 PHP
php导出中文内容excel文件类实例
Jul 06 PHP
详解PHP数据压缩、加解密(pack, unpack)
Dec 17 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
Apr 24 PHP
Laravel5.1框架路由分组用法实例分析
Jan 04 PHP
如何在PHP中生成随机数
Jun 04 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调用mysql存储过程
2007/02/14 PHP
php GUID生成函数和类
2014/03/10 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
Jquery选择子控件&quot;大于号&quot;和&quot; &quot;区别介绍及使用示例
2013/06/25 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
使用Python监控文件内容变化代码实例
2018/06/04 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
python实现大文件分割与合并
2019/07/22 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
军训生自我鉴定范文
2013/12/27 职场文书
生产部岗位职责范文
2014/02/07 职场文书
拓展训练激励口号
2014/06/17 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
死者家属慰问信
2015/03/24 职场文书
团队拓展训练感想
2015/08/07 职场文书
2016年度先进班组事迹材料
2016/03/01 职场文书
导游词之任弼时故居
2020/01/07 职场文书
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server