一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

Codeigniter框架的更新事務(transaction)BUG及解決方法

由于ci事務判斷出錯回滾的條件是語句是否執行成功,而更新操作時,就算影響的條數為0,sql語句執行的結果過仍然為1,因為它執行成功了,只是影響的條數為0。

下面介紹解決這個問題的方法:

對于一次要執行許多的語句的事務

只需在更新操作下根據影響條數是否為0來決定是否會滾即可,下面假設第二條語句為更新操作。

復制代碼 代碼如下:
//采用 Codeigniter 事務的手動模式
    $this->db->trans_strict(FALSE);
    $this->db->trans_begin();
       
    $this->db->query('SELECT ...');//SELECT 操作無需特殊處理
    $this->db->query('INSERT ...');//INSERT 出錯會有 Codeigniter 自動處理
       
    $this->db->query('UPDATE ...');
    if (!$this->db->affacted_rows()) {//上面的 UPDATE 失敗則回滾
        $this->db->trans_rollback();
        //@todo 異常處理部分
        exit();//需要終止或跳出,以免下面的 SQL 代碼繼續執行!
    }
       
    $this->db->query('DELETE ...');
    if (!$this->db->affacted_rows()) {//上面的 DELETE 失敗則回滾
        $this->db->trans_rollback();
        //@todo 異常處理部分
        exit();//需要終止或跳出,以免下面的 SQL 代碼繼續執行!
    }
       
    $this->db->query('SELECT ...');//SELECT 操作無需特殊處理
    $this->db->query('INSERT ...');//INSERT 出錯會有 Codeigniter 自動處理
       
    if ($this->db->trans_status() === TRUE) {
        $this->db->trans_commit();
    } else {
        $this->db->trans_rollback();
        //@todo 異常處理部分
    }

如果一次執行的語句不是很多,可以在最后做一下判斷來決定回滾

若語句中沒有更新操作,用自動事務就可以。

php技術Codeigniter框架的更新事務(transaction)BUG及解決方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久精品免费全国观看国产 | 成人免费视频69 | 一本一道dvd在线播放器 | 五月婷婷网址 | 免费一级特黄欧美大片勹久久网 | 在线观看精品视频网站www | 成人三级视频在线观看 | 成人在线综合网 | 国产亚洲精品福利 | 国产免费久久精品99久久 | 综合久久一区二区三区 | 国产一区二区三区在线观看视频 | 91久久香蕉青青草原娱乐 | 中文字幕一区二区在线播放 | 一区二区三区高清视频在线观看 | 一级寡妇乱色毛片全场免费 | 国产99视频精品草莓免视看 | 色拍拍综合网 | 韩国亚洲伊人久久综合影院 | 思思久久99热这里只有精品66 | 酒色网址| 福利视频一区青娱 | 人人洗澡人人洗澡人人 | 色综合色狠狠天天综合色 | 国产成人悠悠影院 | 免费看污成人午夜网站 | 国产精品高清视亚洲一区二区 | 久久线看观看精品香蕉国产 | 老司机51精品视频在线观看 | 亚洲人成网男女大片在线播放 | 亚洲婷婷影院 | 99视频精品全部免费观看 | 久久精品国产99久久72 | 国产精品激情综合久久 | 精品一区二区三区四区五区 | 国内自产拍自a免费毛片 | 91免费小视频 | 国产欧美自拍 | 精品国产91在线网 | 免费色播 | 成人免费动作大片黄在线 |