PHP Unconference Europe 2015

cubrid_rollback

(PECL CUBRID >= 8.3.0)

cubrid_rollbackRetroceder una transacción

Descripción

bool cubrid_rollback ( resource $conn_identifier )

La función cubrid_rollback() ejecuta un retroceso en la transacción apuntada por conn_handle, actualmente en progreso.

La conexión al servidor se cierra después de llamar a cubrid_rollback(). El gestor de conexión, sin embargo, es todavía válido.

Parámetros

conn_identifier

Identificador de conexión.

Valores devueltos

TRUE, cuando el proceso tiene éxito.

FALSE, cuando el proceso no tiene éxito.

Ejemplos

Ejemplo #1 Ejemplo de cubrid_rollback()

<?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);
?>

El resultado del ejemplo sería:

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            

Ver también

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top