【问题标题】:Laravel mysql multiple operations with one DB instanceLaravel mysql 多个操作与一个数据库实例
【发布时间】:2017-08-04 10:36:50
【问题描述】:

据我了解,Laravel 中的每个DB::(如果重要的话,我使用 5.2)基本上都会打开新连接并在操作完成后关闭它。

问题是,有没有可能创建一个DB 实例并使用它进行n 次操作?类似于原生 php 的东西,您可以在其中打开连接并在所有操作完成后手动关闭它。

喜欢

$conn = DB;
$users = $conn->table('users')->get();
$bills = $conn->table('bills')->lists('id');
/* something happens */
unset($conn);

或者这种类型的东西。

【问题讨论】:

    标签: php database laravel laravel-5.2


    【解决方案1】:

    使用数据库事务

    DB::transaction(function () {
        $users = DB::table('users')->get();
        $bills = DB::table('bills')->lists('id');
    });
    

    更多:https://laravel.com/docs/5.4/database#database-transactions

    【讨论】:

    • 是否有可能提交部分正在处理的数据?或者以某种方式避免提交或回滚所有内容的必要性?
    • 我无法确定。一切都发生在事务中。
    • @Yawning Milk 你不需要手动提交,如果关闭完成没有错误,那么事务将被提交。如果您想提交部分方式,只需使用两个事务。
    猜你喜欢
    • 2012-04-12
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 2010-10-15
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    相关资源
    最近更新 更多