downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

ibase_wait_event> <ibase_timefmt
Last updated: Fri, 20 May 2011

view this page in

ibase_trans

(PHP 4, PHP 5)

ibase_transComienza una transacción

Descripción

resource ibase_trans ([ int $trans_args [, resource $link_identifier ]] )
resource ibase_trans ([ resource $link_identifier [, int $trans_args ]] )

Comienza una transacción.

Note:

El comportamiento de esta función ha cambiado en PHP 5.0.0. La primera llamada a ibase_trans() no devuelve la transacción por omisión de una conexión. Todas las transacciones que comiencen por ibase_trans() se desharán al finalizar el script siempre y cuando no se hayan llevado a cabo explícitamente, o ya se hubieran deshecho mediante ibase_commit() o ibase_rollback() respectivamente.

Note:

En PHP 5.0.0. y superior esta función acepta múltiples parámetros trans_args y link_identifier. Esto permite llevar a cabo transacciones sobre múltiples conexiones a bases de datos, las cuales se llevan a cabo utilizando un algoritmo de dos fases. Esto significa que una actualización podría o bien fallar en todas las bases de datos, o bien tener éxito en todas. NO significa que se puedan usar en una misma consulta tablas de distintas bases de datos.

Si se usaran transacciones sobre múltiples bases de datos, se deberá especificar tanto el link_id como el transaction_id en las llamadas a ibase_query() y a ibase_prepare().

Parámetros

trans_args

trans_args puede ser una combinación de IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT y IBASE_NOWAIT.

link_identifier

Identificador de enlace a InterBase. Si se omite, se utilizará el último enlace que se haya abierto.

Valores devueltos

Devuelve un manejador de transacción, o FALSE en caso de error.



add a note add a note User Contributed Notes ibase_trans
Aaron Brundle 10-Nov-2005 10:06
Example of using ibase_trans with ibase_prepare and ibase_execute:

$dbh = ibase_connect( ... );
$sql =  " ... ";
$trans = ibase_trans( IBASE_DEFAULT,$dbh );
$sth = ibase_prepare( $trans, $sql );
$res = ibase_execute( $sth, $params_if_any );
if ($res == false) {
  //log failure if you want
}
ibase_commit($trans);
//free if needed
ibase_free_query($sth);
unset($res);
jon at tgpsolutions dot com 12-Jul-2002 01:56
When using transactions, you must execute queries using the transaction identifier as the link_identifier in ibase_query. 

Example:

$db = ibase_connect( ... );
$tr = ibase_trans();
$result = ibase_query($tr, $sql1);
$result = ibase_query($tr, $sql2);
ibase_rollback($tr);

You must use ibase_query($tr, $sql1).  Calling ibase_query($db, $sql1) will not allow you to roll back - it will be commited when the script finishes executing.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites