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);
ibase_trans
(PHP 4, PHP 5)
ibase_trans — Prépare une transaction interBase
Description
Prépare une transaction interBase.
Note: Le comportement de cette fonction a changé depuis PHP 5.0.0. Le premier appel à ibase_trans() retournera la transaction par défaut pour la connexion courante. Toutes les transactions commencées par ibase_trans() seront annulées à la fin de l'exécution du script si elles n'ont pas été validées ou annulées par respectivement les fonctions ibase_commit() ou ibase_rollback().
Note: Dans les versions 5.0.0 de PHP et suivantes, ibase_trans() accepte plusieurs paramètres trans_args et link_identifier . Ceci permet d'effectuer des transactions sur plusieurs connexions à des bases de données différentes, qui seront validées en utilisant l'algorithme 2-phase. Cela signifie que vous pouvez mettre à jour plusieurs bases de données. Cela ne veut PAS dire que vous pouvez utiliser plusieurs bases de données dans une même requête !
Si vous utilisez les transactions sur plusieurs base de données, vous devez spécifier link_id et transaction_id dans les fonctions ibase_query() et ibase_prepare().
Liste de paramètres
- trans_args
-
trans_args peut être une combinaison des constantes suivantes : IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT et IBASE_NOWAIT.
- link_identifier
-
Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.
Valeurs de retour
Retourne une ressource de transaction, ou FALSE si une erreur survient.
ibase_trans
10-Nov-2005 12:06
12-Jul-2002 04: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.
