2017-03-14 78 views
1

據我所知,Laravel中的每個DB::(我使用5.2,如果有的話)基本上打開新的連接,並在操作完成時關閉它。Laravel mysql多個操作與一個數據庫實例

問題是,是否有可能創建一個DB實例並使用它進行n次操作?就像本地PHP一樣,你打開連接並在完成所有事情後手動關閉它。

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

或者,這類型的東西。

回答

2

使用DB交易

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

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

+0

是有承諾的過程中部分數據的可能性?或者以某種方式避免提交或回滾所有內容的必要性? – Coffee

+0

我無法確定。一切都在交易中發生。 – EddyTheDove

+0

@打呵欠的牛奶你不需要手動提交,如果閉包完成沒有錯誤,那麼交易將被提交。如果你想提交部分方法,只需使用兩個事務。 – ShaunUK

相關問題