文字

cubrid_rollback

(PECL CUBRID >= 8.3.0)

cubrid_rollbackRoll back a transaction

说明

bool cubrid_rollback ( resource $conn_identifier )

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 , when process is successful.

FALSE , when process is unsuccessful.

范例

Example #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 ( $req 1 $id_list [ $i ]);
    
cubrid_bind ( $req 2 $name_list [ $i ]);
    
cubrid_bind ( $req 3 $city_list [ $i ]);
    
cubrid_bind ( $req 4 $state_list [ $i ]);
    
cubrid_bind ( $req 5 $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            

参见

  • cubrid_commit() - Commit a transaction
  • cubrid_disconnect() - Close a database connection
上一篇: 下一篇: