#### 使用閉包處理事務
```
sql::transaction(function(){
if(!sql::update('DELETE FROM news WHERE id=?',[1,3]))
{
throw new Exception;
}
if(!sql::delete('DELETE FROM news where id=?',[5]))
{
throw new Exception;
}
});
```
> 注意: 在 transaction 閉包若拋出任何異常會導致事務自動回滾。
#### 開啟事務
有時候你可能需要自己開啟一個事務
```
sql::beginTransaction()
```
#### 事務回滾
通過 rollback 的方法回滾事務
```
sql::rollback();
```
#### 提交事務
通過 commit 的方法提交事務
```
DB::commit();
```
#### 排他鎖
排他鎖(FOR UPDATE )即,禁止其他事務執行任務操作(包括查詢)。
```
Db::transaction(function(){
//鎖定goods表,多個用戶執行本代碼時,需要前一個用戶執行完才可以操作goods表,哪怕是讀取goods表中的數據
Db::table('goods')->lock()->get();
});
```