Begin a transaction

- « ibase_set_event_handler

- ibase_wait_event »

- PHP Manual
- Firebird/InterBase Functions
- Begin a transaction

# ibase_trans

(PHP 5, PHP 7 < 7.4.0)

ibase_trans — Begin a transaction

### Description

ibase_trans(int `$trans_args` = ?, resource `$link_identifier` = ?): resource
ibase_trans(resource `$link_identifier` = ?, int `$trans_args` = ?): resource

Begins a transaction.

> Note:

> The first call to ibase_trans() will not return the default transaction of a connection. All transactions started by ibase_trans() will be rolled back at the end of the script if they were not committed or rolled back by either ibase_commit() or ibase_rollback().

> Note:

> This function will accept multiple `trans_args` and `link_identifier` arguments. This allows transactions over multiple database connections, which are committed using a 2-phase commit algorithm. This means you can rely on the updates to either succeed in every database, or fail in every database. It does NOT mean you can use tables from different databases in the same query!

> If you use transactions over multiple databases, you will have to specify both the `link_id` and `transaction_id` in calls to ibase_query() and ibase_prepare().

### Parameters

`trans_args`

  `trans_args` can be a combination of `IBASE_READ`, `IBASE_WRITE`, `IBASE_COMMITTED`, `IBASE_CONSISTENCY`, `IBASE_CONCURRENCY`, `IBASE_REC_VERSION`, `IBASE_REC_NO_VERSION`, `IBASE_WAIT` and `IBASE_NOWAIT`.

`link_identifier`

  An InterBase link identifier. If omitted, the last opened link is assumed.

### Return Values

Returns a transaction handle, or `false` on error.