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

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

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

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

對于一次要執(zhí)行許多的語句的事務(wù)

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

復(fù)制代碼 代碼如下:
//采用 Codeigniter 事務(wù)的手動模式
    $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 代碼繼續(xù)執(zhí)行!
    }
       
    $this->db->query('DELETE ...');
    if (!$this->db->affacted_rows()) {//上面的 DELETE 失敗則回滾
        $this->db->trans_rollback();
        //@todo 異常處理部分
        exit();//需要終止或跳出,以免下面的 SQL 代碼繼續(xù)執(zhí)行!
    }
       
    $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 異常處理部分
    }

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

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

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

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

主站蜘蛛池模板: 久久久噜噜噜久久网 | 国产www色| 夜色资源站www国产在线观看 | 久久久精品影院 | 久久中文精品 | 国产精品合集一区二区三区 | 亚洲视频区 | 日韩一区二区超清视频 | 色婷婷激情综合 | 天天澡天天碰天天狠伊人五月 | 日本人×体xx艺术 | 国产免费一区二区三区在线观看 | 欧美久久精品一级c片片 | 二区在线播放 | 成人视屏在线 | 国产高清国内精品福利 | 亚洲最大色网 | 正在播放国产乱子伦视频 | 中文字幕一级毛片视频 | 精品天海翼一区二区 | 国产精品美女久久久久网 | 中文字幕一区中文亚洲 | 美女黄页视频 | 婷婷精品视频 | 国产亚洲精品福利片 | 色哟哟哟| 精品国产福利片在线观看 | 色久悠悠在线 | 色永久 | 四虎国产永久在线观看 | 精品国产乱子伦一区 | 四虎影视永久免费观看网址 | youjizz日韩| 亚洲欧美日韩国产一区二区精品 | 色多多网站 | 色视频在线观看网站 | 亚洲国产成人综合精品2020 | 亚洲午夜久久久久国产 | 亚洲伊人久久综合 | 色爱五月天 | 真实国产乱子伦精品免费 |