1. 首页
  2. PHP

ThinkPHP5.0+MySQL5.7事务操作

使用事务可以保证成批的 SQL 语句要么全部执行,要么全部不执行。主要用于处理操作量大,复杂度高的数据。

在各种开源CMS中并不缺乏使用事务的样例,使用事务可以使得批量的SQL有一个统一的结果,要么全部执行成功,要么全部不执行。

举个例子,例如在删除一个员工信息的时候并不只是删除员工表的信息,也包括与这个员工相关的所有信息,如员工分类信息、员工职位信息等…

 

ThinkPHP Code

 

事务隔离效果测试

MySQL的默认事务隔离级别是“可重复读(repeatable-read)”,理论上是不会产生脏读和不可重复读的。下面是测试样例

上面的代码中使用sleep函数使得事务提交延后了10秒,这个时候我们访问下面这个function就可以知道是否会读到未提交事务修改的数据了(脏读)。

 

测试结果就不放图了,我用的是MySQL5.6和5.7测试的,默认的事务隔离级别已经不会产生脏读和不可重复的现象了。

 

原创文章,作者:keyboardman,如若转载,请注明出处:http://blog.keyboardman.fun/php/319.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注