<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 事務 CodeIgniter 允許你在支持事務安全的表上使用事務。在 MySQL 中,你需要將 表的存儲引擎設置為 InnoDb 或 BDB,而不是通常我們使用的 MyISAM 。大多數 其他數據庫平臺都原生支持事務。 如果你對事務還不熟悉,我們推薦針對你正在使用的數據庫,先在網上尋找一些 在線資源學習一下。下面將假設你已經明白事務的基本概念。 ## CodeIgniter 的事務方法 CodeIgniter 使用的事務處理方法與流行的數據庫類 ADODB 的處理方法非常相似。 我們選擇這種方式是因為它極大的簡化了事務的處理過程。大多數情況下,你只需 編寫兩行代碼就行了。 傳統的事務處理需要實現大量的工作,你必須隨時跟蹤你的查詢,并根據查詢的成功 或失敗來決定提交還是回滾。當遇到嵌套查詢時將會更加麻煩。相比之下,我們實現了 一個智能的事務系統,它將自動的為你做這些工作。(你仍然可以選擇手工管理你的 事務,但這實在是沒啥好處) ## 運行事務 要使用事務來運行你的查詢,你可以使用 $this->db->trans_start() 和 $this->db->trans_complete() 兩個方法,像下面這樣: ~~~ $this->db->trans_start(); $this->db->query('AN SQL QUERY...'); $this->db->query('ANOTHER QUERY...'); $this->db->query('AND YET ANOTHER QUERY...'); $this->db->trans_complete(); ~~~ 在 start 和 complete 之間,你可以運行任意多個查詢,根據查詢執行 成功或失敗,系統將自動提交或回滾。 ## 嚴格模式 (Strict Mode) CodeIgniter 默認使用嚴格模式運行所有的事務,在嚴格模式下,如果你正在 運行多組事務,只要有一組失敗,所有組都會被回滾。如果禁用嚴格模式,那么 每一組都被視為獨立的組,這意味著其中一組失敗不會影響其他的組。 嚴格模式可以用下面的方法禁用: ~~~ $this->db->trans_strict(FALSE); ~~~ ## 錯誤處理 如果你的數據庫配置文件 config/database.php 中啟用了錯誤報告(db_debug = TRUE), 當提交沒有成功時,你會看到一條標準的錯誤信息。如果沒有啟用錯誤報告, 你可以像下面這樣來管理你的錯誤: ~~~ $this->db->trans_start(); $this->db->query('AN SQL QUERY...'); $this->db->query('ANOTHER QUERY...'); $this->db->trans_complete(); if ($this->db->trans_status() === FALSE) { // generate an error... or use the log_message() function to log your error } ~~~ ## 啟用事務 當執行 $this->db->trans_start() 方法時,事務將自動啟用,如果 你要禁用事務,可以使用 $this->db->trans_off() 方法來實現: ~~~ $this->db->trans_off(); $this->db->trans_start(); $this->db->query('AN SQL QUERY...'); $this->db->trans_complete(); ~~~ 當事務被禁用時,你的查詢會自動提交,就跟沒有使用事務一樣。 ## 測試模式(Test Mode) 你可以選擇性的將你的事務系統設置為 “測試模式”,這將導致你的所有 查詢都被回滾,就算查詢成功執行也一樣。要使用 “測試模式”,你只需要 將 $this->db->trans_start() 函數的第一個參數設置為 TRUE 即可: ~~~ $this->db->trans_start(TRUE); // Query will be rolled back $this->db->query('AN SQL QUERY...'); $this->db->trans_complete(); ~~~ ## 手工運行事務 如果你想手工運行事務,可以像下面這樣做: ~~~ $this->db->trans_begin(); $this->db->query('AN SQL QUERY...'); $this->db->query('ANOTHER QUERY...'); $this->db->query('AND YET ANOTHER QUERY...'); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); } else { $this->db->trans_commit(); } ~~~ 注解 手動運行事務時,請務必使用 $this->db->trans_begin() 方法,?**而不是**?$this->db->trans_start() 方法。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看