laravel事务笔记

事务是把一系列数据库操作当作一个逻辑单元执行,也就是说,事务中的一系列 SQL 语句要么都执行成功,要么都失败,事务的原子性能保证数据的一致性、安全性和持久性。

PDO 扩展中使用事务很容易,只需把想要执行的 SQL 语句放在 PDO 实例的beginTransaction()方法和commit()方法之间即可。

在 Laravel 框架中对事务操作进行了封装,我们可以这样调用:

DB::transaction(function () {

DB::table('users')->update(['votes' => 1]);

DB::table('posts')->delete();

}, 5);

相应的底层位于ManagesTransactionstrait 中:

laravel事务笔记_第1张图片

还可以这样调用:

DB::beginTransaction();

try {

DB::table('users')->update(['votes' => 1]);

DB::table('posts')->delete();

DB::commit();

} catch (PDOException $ex) {

var_dump($ex);

DB::rollback();

}

相应的底层实现同样位于ManagesTransactions,可自行查看。


原文:http://laravelacademy.org/post/7448.html

你可能感兴趣的:(laravel事务笔记)