最新消息:

mysql事务和thinkphp中事务应用

mysql xiaoxiaopao 104浏览 0评论

我们在实际做项目中可能会运用到mysql的事务管理。运用场景有比如:某个用户点击了某个商品,此时我们可能会把这个商品的信息或者id同时写入几张表中。但是实际写入中,可能会出现错误,比如:第一个写入操作成功,第二个写入操作失败。此时我们该怎么办了?重新把之前写入的数据删掉吗?很麻烦对不。

好了,废话不多说:

1:首先建立一张表:

CREATE TABLE `goods` (

`id` int(5) NOT NULL AUTO_INCREMENT,

`name` varchar(20) CHARACTER SET utf8 DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT charset=utf8;

: MYSQL的数据库引擎中,只有InnoDB和BDB(Berkley DB )包括了对事务处理和外键的支持。如果数据引擎建为MyISAM则rollback无效。大家一定要看清除哟。

mysql事务和thinkphp中事务应用

表结构

2: 开启事务START TRANSACTION 或 BEGIN

mysql事务和thinkphp中事务应用

开启事务

3:插入数据:

mysql事务和thinkphp中事务应用

插入数据

4:插入成功后提交数据

mysql事务和thinkphp中事务应用

提交数据

5:显示数据

mysql事务和thinkphp中事务应用

显示结果

但是有时候因为某种原因:假如其中一条数据插入失败,我们要撤回之前的所有操作;

mysql事务和thinkphp中事务应用

未操作的数据

mysql事务和thinkphp中事务应用

插入数据

mysql事务和thinkphp中事务应用

数据添加成功未提交

mysql事务和thinkphp中事务应用

数据回滚成功,返回到未插入状态

我们同时在thinkphp 中我们就没必须这么麻烦。别人已经封装好了函数,废话不多说,上图:

mysql事务和thinkphp中事务应用

php或mysql每日一更,请大家多多关注,互相学习。

转载请注明:PHP学习 » mysql事务和thinkphp中事务应用

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址