tp 5.0 mysql 事物

mysql  默认 MyISAM存储引擎,不支持事物处理,InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引

查看 当前数据库的引擎
show variables like ‘%storage_engine%‘;

查看当前表使用的引擎
show table status from ceshi where name=‘user‘;

修改表引擎方法
alter table user engine=innodb;

public function index(){    $data[‘name‘] = ‘小猪‘;    $data[‘pwd‘] = ‘123456‘;

// 启动事务    Db::startTrans();    try{        $res=Db::table(‘user‘)->insert($data);

// id 为 2 的数据不存在        $res2=Db::table(‘user‘)->where(‘id‘,2)->delete();        if($res && $res2){            echo ‘操作成功‘;        }else{            throw new \Exception("删除id 2 数据没有成功");        }

// 提交事务        Db::commit();    } catch (\Exception $e) {        // 回滚事务        Db::rollback();        var_dump($e->getMessage());

}

原文地址:https://www.cnblogs.com/songxuan/p/9441417.html

时间: 2024-10-10 16:41:10

tp 5.0 mysql 事物的相关文章

mysql事物

MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务.行级锁.并发 3.Berkeley DB:支持事务 一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行.换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的.如果在事务的任何操作失败,则整个事务将失败.实际上,会俱乐部许多SQL查询到一个组中,将执行所有的人都一起作为事务的一部分. 事务的特性: 事务有以下四个

mysql事物处理

mysql事物主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你既要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等.这样,这些数据库操作语句就构成一个事物.注意一下几点: 在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务. 事物处理可以用来维护数据库的完整性,保证成批的sql语句要么全部执行,要么全部不执行. 事物用来管理insert,update,delete语句. 先简单介绍一下事物吧.事物是DBMS的执行单位.它由有限的数

MySQL事物系列:3:innodb_flush_log_at_trx_commit小实验

1:创建表和存储过程 mysql> create database trx; Query OK, 1 row affected (0.02 sec) mysql> USE trx Database changed mysql> CREATE TABLE test_trx( -> id int(5), -> uname char(30)) -> engine =innodb; Query OK, 0 rows affected (0.01 sec) mysql> D

mysql事物实现大致逻辑测试

mysql事物实现语法 1)begin sql语句 rollback 或者commit START TRANSACTION sql语句 rollback 或者commit 2)修改AUTOCOMMIT 自动提交是否开启的 #本文未涉及 个人对此逻辑理解 开始事物 提交每一个sql,并记录提交成功与否 对所有sql提交结果,进行判断 都执行成功,则commit#提交事务,这时所有操作才会进行 否则(有任何一个执行失败),则rollback.进行事务回滚 以下附上测试表结构和php代码 表结构 CR

Lost connection to MySQL server at ‘reading initial communication packet', system error: 0 mysql远程连接问题

在用Navicat for MySQL远程连接mysql的时候,出现了 Lost connection to MySQL server at ‘reading initial communication packet', system error: 0 好恶心,服务器重启了一次,就一上午都是在处理mysql的各种问题. 第一步:找到:my.cnf文件 其实我也不知道在哪里,用指令帮我们找吧. find / -name my.cnf 找到了后. 第二步:vi my.cnf vi my.cnf 在m

hadoop hive2.0 mysql本地仓库安装 错误解决

参考资料: hive安装手册. Hadoop2.7实战v1.0之Hive-2.0.0+MySQL远程模式安装  http://m.blog.itpub.net/30089851/viewspace-2082805/ 安装环境 Ubuntu 12.04 server java 1.7.0_95 hadoop 2.6.4 步骤: 1.安装mysql 直接使用命令安装: 更新源 sudo apt-get update 安装 sudo apt-get install mysql-server mysql

12.关于mysql事物。

一.什么是事物? 个人理解,sql中的事物就是给sql语句做一个分组,组内的sql语句要不然就全部执行成功,要不然就完全的不会执.或者说作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源.通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠.一个逻辑工作单元要成为事务. 二.关于事物的示例,以及如何在mysql中开启事物. start trans

PHP和Mysql事物处理

这几天做支付的时候,又用到了事物,为了方便自己以后查看,今天闲的没事就把以前的东西整理下.(其中引用别人的东西,在这里谢谢他们贡献的代码!) 一.事务处理概述: 事务:是若干事件的集合 事务处理:当所有事件执行成功,事务才执行;若有任何一个事件不能成功执行,事务的其它事件也不被执行. 只要你的MySQL版本支持BDB或InnoDB表类型,那么你的MySQL就具有事务处理的能力.这里面,又以InnoDB表类型用的最多,下面就以InnoDB表类型为例简单说一下MySQL中的事务处理. 二.MYSQL

Mysql事物与二阶段提交

 1.事务的四种特性(ACID) 事务可以是一个非常简单的SQL构成,也可以是一组复杂的SQL语句构成.事务是访问并且更新数据库中数据的一个单元,在事务中的操作,要么都修改,要么都不做修改,这就是事务的目的,也是事务模型区别于其他模型的重要特征之一. 事务的原子性:原子是不可分割的,事务不可分割(没有commit数据不能被读到). 事务的持久性:在commit之后,不能丢数据.(就是在提交后,数据必须落盘redo落盘). 事务的隔离性:在数据库里面,各个事务之间不能互相影响. 事务的一致性:事务