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

search for in the

ibase_wait_event> <ibase_timefmt
Last updated: Fri, 27 Jun 2008

view this page in

ibase_trans

(PHP 4, PHP 5)

ibase_trans — Rozpoczyna transakcję

Opis

resource ibase_trans ([ int $flagi_transakcji [, resource $identyfikator_połączenia ]] )

Rozpoczyna transakcję.

flagi_transakcji mogą być kombinacją stałych: IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT i IBASE_NOWAIT.

Informacja: Zachowanie tej funkcji zostało zmienione w PHP 5.0.0. Pierwsze wywołanie ibase_trans() nie zwraca domyślnej transakcji w domyślnym połączeniu. Wszystkie transakcje rozpoczęte w wyniku wywołania ibase_trans() będą wycofane w momencie zakończenia działania skryptu jeżeli nie zostaną jawnie potwierdzone lub wycofane odpowiednio przez ibase_commit() lub ibase_rollback().

Informacja: W PHP 5.0.0. i wersjach późniejszych ta funkcja akceptuje złożone argumenty flagi_transakcji i identyfikator_połączenia . To pozwala transakcjom na wielokrotne połączenia do baz danych i stosowanie algorytmu 2-fazowego potwierdzania. Tym samym możesz mieć pewność, że we wszystkich bazach danych modyfikacje zakończą się sukcesem lub zakończą się porażką. To NIE znaczy że możesz używać tabel z różnych baz danych w jednym zapytaniu!
Jeżeli korzystasz jednocześnie z wielu baz danych, powinieneś podawać oba parametry identyfikator_połączenia i identyfikator_transakcji przy wywoływaniu ibase_query() i ibase_prepare().



add a note add a note User Contributed Notes
ibase_trans
Aaron Brundle
10-Nov-2005 11: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 03: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.

ibase_wait_event> <ibase_timefmt
Last updated: Fri, 27 Jun 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites