Roll back a transaction

cubrid_rollback

(PECL CUBRID >= 8.3.0)

cubrid_rollbackRoll back a transaction

說明

cubrid_rollback(resource $conn_identifier): bool

The cubrid_rollback() function executes rollback on the transaction pointed by conn_identifier, currently in progress.

Connection to server is closed after calling cubrid_rollback(). Connection handle, however, is still valid.

參數

conn_identifier

Connection identifier.

返回值

成功時返回 true, 或者在失敗時返回 false

範例

示例 #1 cubrid_rollback() example

<?php
$conn 
cubrid_connect("127.0.0.1"33000"demodb""dba");
cubrid_set_autocommit($conn,false);

@
cubrid_execute($conn"DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3), 
pub_name VARCHAR(20), 
city VARCHAR(15), 
state CHAR(2), 
country VARCHAR(15)
)
EOD;

if (!
cubrid_execute($conn$sql)) {
    
printf("Error facility: %d\nError code: %d\nError msg: %s\n"cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    
cubrid_disconnect($conn);
    exit;
}

$req cubrid_prepare($conn"INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01""P02""P03""P04");
$name_list = array("Abatis Publishers""Core Dump Books""Schadenfreude Press""Tenterhooks Press");
$city_list = array("New York""San Francisco""Hamburg""Berkeley");
$state_list = array("NY""CA"NULL"CA");
$country_list = array("USA""USA""Germany""USA");

for (
$i 0$size count($id_list); $i $size$i++) {
    
cubrid_bind($req1$id_list[$i]);
    
cubrid_bind($req2$name_list[$i]);
    
cubrid_bind($req3$city_list[$i]);
    
cubrid_bind($req4$state_list[$i]);
    
cubrid_bind($req5$country_list[$i]);

    if (!(
$ret cubrid_execute($req))) {
        break;
    }
}

if (!
$ret) {
    
cubrid_rollback($conn);
} else {
    
cubrid_commit($conn);

    
$req cubrid_execute($conn"SELECT * FROM publishers");
    while (
$result cubrid_fetch_assoc($req)) {
        
printf("%-3s %-20s %-15s %-3s %-15s\n"
            
$result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
    }
}

cubrid_disconnect($conn);
?>

以上例程會輸出:

P01 Abatis Publishers    New York        NY  USA            
P02 Core Dump Books      San Francisco   CA  USA            
P03 Schadenfreude Press  Hamburg             Germany        
P04 Tenterhooks Press    Berkeley        CA  USA            

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *