thinkphp curd的事務回滾

  /**

      *thinkphp數據庫的事務回滾例子

      *這一般用在多表操作,比如:

(1)訂單表和其他訂單關聯信息,刪除訂單同時也要把訂單關聯表中的信息刪掉,如果說刪除了訂單表結果在刪除訂單關聯信息表時出現問題,也就是說,訂單的關聯信息沒有刪掉,這時就會出現信息不對應,甚至信息的冗餘,這時採用事務回滾,如果一個沒有刪掉,之前的也要回滾,保持記錄的對應統一

(2)銀行打錢,如果A給B打錢,給Binsert成功了,但是Adelete失敗,這時銀行就虧大了,明白?此時就要回滾,如果兩者其中一者不成立,則都復位

     */
    public function rollback(){
        $M=M("Rollback");
        $M->startTrans();//開啓事務
        $array=array("name"=>"hehe","sex"=>"men");
        if($M->add($array) && $M->where("id in (14,15)")->delete())
        {
          echo "操作成功!";
          $M->commit();//提交事務成功
        }else{
          echo "操作失敗!";
          $M->rollback();//事務有錯回滾
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章