2019独角兽企业重金招聘Python工程师标准>>>

//准备的sql语句,数据user表中username是唯一索引,innodb$sql="INSERT INTO `user`(`username`,`password`,`name`,`age`,`price`,`time`) VALUES ('admin',md5('admin'),'Mr.Zhang',34,10,111111111)";$sql2="INSERT INTO `user`(`username`,`password`,`name`,`age`,`price`,`time`) VALUES ('admin',md5('admin'),'Mr.Zhang',34,10,111111111)";$mysqli=new mysqli("localhost","root","root","ci");$mysqli->query("set names utf8");$mysqli->autocommit(false);//关闭自动提交,同时开始事务//执行sql$mysqli->query($sql);$mysqli->query($sql2);if(!$mysqli->errno){$mysqli->commit();//如果成功,则提交echo "insert  success";}else{echo "insert error code:".$mysqli->errno;$mysqli->rollback();//不成功,则回滚}$mysqli->autocommit(true);$mysqli->close();

一般来说,事务都具备四个特征:ACID。

A:Atomic (原子性)组成事务处理的语句形成了一个逻辑单元,比如上面的sql 和sql2 两个语句执行是不能分割的,不能只执行sql或者sql2

C:Consistent(一致性),在事务处理执行前后,数据库是一致的,比如银行 A账户转钱给B账户,A的钱减少那么B的钱必须增加相对于的金额,要么都不变。

I:Isolated(隔离性),一个事务处理对另一个事务处理没有影响.比如说,银行转帐过程中,在转帐事务没有提交之前,另一个转帐事务只能处于等待状态。

D:Durable(持续性,事务处理的效果能够被永久保存下来。反过来说,事务应当能够承受所有的失败,包括服务器、进程、通信以及媒体失败等等。比如:银行转帐过程中,转帐后帐户的状态要能被保存下来。

ps:对事务主要是理解,只有理解了才是自己的东西。

这里要注意下:MyISAM:不支持事务,用于只读程序提高性能(如果查询比较多,而没有事务最佳之选);InnoDB:支持ACID事务、行级锁、并发;Berkeley DB:支持事务。

转载于:https://my.oschina.net/u/2443173/blog/620027

php 中的 mysqli事务处理相关推荐

  1. PHP中的MySQLi扩展学习(五)MySQLI_STMT对象操作

    PHP中的MySQLi扩展学习(五)MySQLI_STMT对象操作 就像 PDO 中的 PDO_Statment 对象一样,MySQLI_STMT 对象也是一个预处理语句所形成的对象,专门用来操作 M ...

  2. java中的数据库事务处理

    /*java使用事务处理,首先要求数据库支持事务,如使用MYSQL的事务功能, 就要求mysql的表类型为Innodb,*/ /*InnoDB,是MySQL的数据库引擎之一 与传统的ISAM与MyIS ...

  3. 多php共用一个mysqli连接,在pHP中使用MySQLi连接到多个数据库

    我现在需要连接到使用PHP两个数据库,并使用结果从第一个查询得到我需要从第二个数据库的数据的其余部分. 因此,对于第二个连接,我需要连接到第二个数据库,并选择状态和邮政编码,其中连接1(客户端)的结果 ...

  4. Android开发中的SQLite事务处理,即beginTransaction()方法...

    以下是Android API的官方注解 beginTransaction Added in API level 1 void beginTransaction () Begins a transact ...

  5. php中关于mysqli和mysql区别

    一: PHP-MySQL 是 PHP 操作 MySQL 资料库最原始的 Extension ,PHP-MySQLi 的 i 代表 Improvement ,提更了相对进阶的功能,就 Extension ...

  6. java excel中重复数据 事务处理_Java导出excel时合并同一列中相同内容的行思路详解...

    一.有时候导出Excel时需要按类别导出,一大类下好几个小类,小类下又有好几个小小类,就像下图: 要实现这个也不难, 思路如下:按照大类来循环,如上就是按照张江校区.徐汇校区.临港校区三个大类循环,然 ...

  7. php中mysql和mysqli_PHP中mysql和mysqli的区别

    首先两个函数都是用来处理DB 的. 首先,mysqli 连接是永久连接,而mysql是非永久连接(错!错!错!).什么意思呢? mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysq ...

  8. 了解Entity Framework中事务处理

    Entity Framework 6以前,框架本身并没有提供显式的事务处理方案,在EF6中提供了事务处理的API. 所有版本的EF,只要你调用SaveChanges方法进行插入.修改或删除,EF框架会 ...

  9. php mysql persistent_PHP API中,MYSQL与MYSQLI的持久连接区别

    很久很久以前,我也是因为工作上的bug,研究了php mysql client的连接驱动mysqlnd 与libmysql之间的区别php与mysql通讯那点事,这次又遇到一件跟他们有联系的事情,my ...

最新文章

  1. R语言使用WVPlots包可视化收入与年龄的Hexbin图并叠加平滑曲线实战
  2. python面试总结 博客园_python面试题总结
  3. java中wait和sleep的区别
  4. 用 Python 编写一个天气查询应用 pyqt5
  5. 记录 CAP定理和BASE特性
  6. 【李宏毅机器学习】Why Deep Learning(p15) 学习笔记
  7. 联想微型计算机Q150,联想Q150E电脑安装攻略
  8. Windows注册表开机自启,右键菜单,运行的位置介绍
  9. property、setter、deleter装饰器的使用
  10. 【超详细】免费搭建一个资源类小程序,对接wordpress网站内容
  11. xp计算机workgroup无法访问,弹出“Workgroup无法访问”的提示?XP 工作组没有权限的解决办法...
  12. mysql计算工作日函数_SQL实现工作日计算_MySQL
  13. 【排列组合】扑克牌大小王被同一人拿到概率
  14. 高并发服务端分布式系统设计概要
  15. mac下keytool 错误: java.lang.Exception: 密钥库文件不存在
  16. C++实现多态的条件
  17. 如何用vits训练模型
  18. 模拟量使用计算机电缆,远东电缆关于计算机电缆选型应用的友情提醒
  19. 一个或多个数据库无法访问,因而不会在数据库访问选项卡中显示
  20. 工作中及时沟通很重要

热门文章

  1. 浅谈SpringMVC执行过程
  2. spring 04-Spring框架依赖注入基本使用
  3. 前端ajax封装对象数组,后台的取法
  4. 若所有的参数皆需要类型转换——请为此采用non-member函数
  5. Erlang(起个中文名:易浪)不能错过的盛宴
  6. 测试php程序运行时间
  7. 大端(Big Endian)与小端(Little Endian)详解
  8. 基于OpenCL的深度学习工具:AMD MLP及其使用详解
  9. Advanced Memory Allocation 内存分配进阶
  10. linux复盘:mysql基础