cubrid_commit

(PECL CUBRID >= 8.3.0)

cubrid_commitПодтверждение транзакции

Описание

cubrid_commit ( resource $conn_identifier ) : bool

Функция cubrid_commit() используется для подтверждения изменений, произведенных в транзакции в соединении conn_identifier, После вызова функции cubrid_commit(), соединение с сервером будет закрыто, но обработчик соединения все еще будет корректным.

В CUBRID PHP, режим авто-коммита для транзакций по умолчанию отключен. Вы можете разрешить или запретить его принудительно с помощью функции cubrid_set_autocommit(). Узнать текущий статус можно функцией cubrid_get_autocommit(). Перед тем как начать транзакцию, убедитесь, что авто-коммит запрещен.

Список параметров

conn_identifier

Идентификатор соединения.

Возвращаемые значения

true, в случае успеха.

false, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_commit()

<?php
$conn 
cubrid_connect("localhost"33000"demodb""dba");

@
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;
cubrid_set_autocommit($conn,false);
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            

Смотрите также