laravel事务笔记

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

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

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

DB::transaction(function () {

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

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

}, 5);

相应的底层位于ManagesTransactionstrait 中:

还可以这样调用:

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数据库使用简易说明 首先可以使用查询构造器和EloquentORM两种方式 目前支持的数据库类型有:...
    hankviv阅读 771评论 0 0
  • 执行 SQL 查询 一旦拥有了 DB Connection 实例, 可以按照下列步骤来执行 SQL 查询: 使用纯...
    liudai123阅读 1,396评论 0 0
  • [转]SQLite.swift Documentation InstallationCarthageCocoaPo...
    mqhong阅读 7,378评论 0 2
  • 一、源题QUESTION 1The instance abnormally terminates because ...
    猫猫_tomluo阅读 1,662评论 0 2
  • 事情过了一个星期,我相当单纯的以为事情已经过去了,毕竟这种事情跟我们的距离像恐怖袭击一样遥远。直到刚才刷薇薇女王的...
    郁馠阅读 582评论 0 2