亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜尋
Array Array Helper Benchmarking Benchmarking Class Caching Caching Driver Calendaring Calendaring Class CAPTCHA CAPTCHA Helper Config Config Class Cookie Cookie Helper Database Connecting to your Database Custom Function Calls Database Caching Class Database Configuration Database Forge Class Database Metadata Database Quick Start: Example Code Database Reference Database Utility Class DB Driver Reference Generating Query Results Queries Query Builder Class Query Helper Methods Transactions Date Date Helper Directory Directory Helper Download Download Helper Email Email Class Email Helper Encrypt Encrypt Class Encryption Encryption Library File File Helper File Uploading File Uploading Class Form Form Helper Form Validation Form Validation FTP FTP Class Functions compatibility_functions common_functions HTML HTML Helper HTML Table HTML Table Class Image Manipulation Image Manipulation Class Inflector Inflector Helper Input Input Class Javascript Javascript Class Language Language Class Language Helper Loader Loader Class Migrations Migrations Class Number Number Helper Output Output Class Pagination Pagination Class Path Path Helper Security Security Class Security Helper Session Session Library Shopping Cart Shopping Cart Class Smiley Smiley Helper String String Helper Template Parser Template Parser Class Text Text Helper Trackback Trackback Class Typography Typography Class Typography Helper Unit Testing Unit Testing Class URI URL User Agent XML XML-RPC and XML-RPC Server Zip Encoding Zip Encoding Class XML-RPC and XML-RPC Server Classes XML Helper User Agent Class URL Helper URI Class
文字

CodeIgniter的數(shù)據(jù)庫抽象允許您將事務(wù)與支持事務(wù)安全表類型的數(shù)據(jù)庫一起使用。在MySQL中,您需要運行InnoDB或BDB表類型,而不是更常見的MyISAM。大多數(shù)其他數(shù)據(jù)庫平臺本機支持事務(wù)。

如果您不熟悉事務(wù),我們建議您找到一個很好的在線資源來了解您的特定數(shù)據(jù)庫。下面的信息假設(shè)您對事務(wù)有基本的理解。

CodeIgniter處理事務(wù)的方法

CodeIgniter使用一種與流行的數(shù)據(jù)庫類ADODB所使用的進程非常相似的事務(wù)處理方法。我們之所以選擇這種方法,是因為它極大地簡化了運行事務(wù)的過程。在大多數(shù)情況下,所需的只是兩行代碼。

傳統(tǒng)上,事務(wù)需要執(zhí)行相當數(shù)量的工作,因為它們要求您跟蹤查詢并根據(jù)查詢的成功或失敗確定是提交還是回滾。這對于嵌套查詢尤其麻煩。相反,我們已經(jīng)實施了一個智能交易系統(tǒng),可以自動完成所有這些工作(如果您愿意,也可以手動管理您的交易,但實際上沒有任何好處)。

運行事務(wù)

要使用事務(wù)運行查詢,您將使用$ this-> db-> trans_start()和$ this-> db-> trans_complete()函數(shù),如下所示:

$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();

您可以在開始函數(shù)/完成函數(shù)之間運行任意數(shù)量的查詢,這些查詢都將根據(jù)任何給定查詢的成功或失敗被提交或回滾。

嚴格模式

默認情況下,CodeIgniter以嚴格模式運行所有事務(wù)。啟用嚴格模式時,如果您正在運行多組事務(wù),如果一個組失敗,所有組都將回滾。如果禁用嚴格模式,則每個組將被獨立處理,這意味著一個組的失敗不會影響其他組。

嚴格模式可以禁用如下:

$this->db->trans_strict(FALSE);

管理錯誤

如果在config/database.php文件中啟用了錯誤報告,如果提交失敗,您將看到一個標準錯誤消息。如果關(guān)閉調(diào)試,您可以管理自己的錯誤,如下所示:

$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}

禁用事務(wù)

如果希望禁用事務(wù),可以使用$this->db->trans_off()*

$this->db->trans_off();$this->db->trans_start();$this->db->query('AN SQL QUERY...');$this->db->trans_complete();

當事務(wù)被禁用時,您的查詢將自動提交,就像在沒有事務(wù)的情況下運行查詢時一樣,實際上忽略了對trans_start(),,,trans_complete()

測試模式

您可以選擇將交易系統(tǒng)置于“測試模式”,這將導(dǎo)致您的查詢被回滾 - 即使查詢產(chǎn)生了有效的結(jié)果。要使用測試模式,只需將$ this-> db-> trans_start()函數(shù)中的第一個參數(shù)設(shè)置為TRUE:

$this->db->trans_start(TRUE); // Query will be rolled back$this->db->query('AN SQL QUERY...');$this->db->trans_complete();

手動運行事務(wù)

如果您想手動運行事務(wù),可以這樣做:

$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();
        }

確保在運行手動事務(wù)時使用$ this-> db-> trans_begin(),而不是 $ this-> db-> trans_start()。

上一篇: 下一篇: