tp5.1的事務操作


普通的事務操作很簡單,最簡單的方式是使用 transaction 方法操作數據庫事務, 當閉包中的代碼發生異常會自動回滾, 例如: 

Db::transaction(function () {
    Db::table('think_user')->find(1);
    Db::table('think_user')->delete(1);
});

 

也可以手動控制事務, 例如:

// 啟動事務
Db::startTrans();
try {
Db::table('think_user')->find(1);
Db::table('think_user')->delete(1);
// 提交事務
Db::commit();
} catch (\Exception $e) {
// 回滾事務
Db::rollback();
}

 

分布式數據庫(多個服務器的數據庫之間的操作可以這樣寫)

Db::connect($config)->startTrans();
try{

  Db::connect($config)->table('think_user')->find(1);
  Db::connect($config)->table('think_user')->delete(1);
  Db::connect($config)->commit();
 }catch (\Exception $e){ 
  Db
::connect($config)->rollback();
  
$this->error();
}
//$config 就是數據庫的配置數據

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM