interface TransactionManager (View source)

Represents an object that is capable of controlling transactions.

The TransactionManager might be the database connection itself, calling queries to orchestrate transactions, or a connector such as the PDOConnector.

Generally speaking you should rely on your Database object to manage the creation of a TransactionManager for you; unless you are building new database connectors this should be treated as an internal API.

Methods

bool
transactionStart(string|bool $transactionMode = false, string|bool $sessionCharacteristics = false)

Start a prepared transaction

bool
transactionEnd()

Complete a transaction

bool
transactionRollback(string $savepoint = null)

Roll-back a transaction

transactionSavepoint(string $savepoint)

Create a new savepoint

int
transactionDepth()

Return the depth of the transaction For unnested transactions returns 1 while in a transaction, 0 otherwise

bool
supportsSavepoints()

Return true if savepoints are supported by this transaction manager.

Details

bool transactionStart(string|bool $transactionMode = false, string|bool $sessionCharacteristics = false)

Start a prepared transaction

Parameters

string|bool $transactionMode

Transaction mode, or false to ignore. Deprecated and will be removed in SS5.

string|bool $sessionCharacteristics

Session characteristics, or false to ignore. Deprecated and will be removed in SS5.

Return Value

bool

True on success

Exceptions

DatabaseException

on failure

bool transactionEnd()

Complete a transaction

Return Value

bool

True on success

Exceptions

DatabaseException

on failure

bool transactionRollback(string $savepoint = null)

Roll-back a transaction

Parameters

string $savepoint

If set, roll-back to the named savepoint

Return Value

bool

True on success

Exceptions

DatabaseException

on failure

transactionSavepoint(string $savepoint)

Create a new savepoint

Parameters

string $savepoint

The savepoint name

Exceptions

DatabaseException

on failure

int transactionDepth()

Return the depth of the transaction For unnested transactions returns 1 while in a transaction, 0 otherwise

Return Value

int

bool supportsSavepoints()

Return true if savepoints are supported by this transaction manager.

Savepoints aren't supported by all database connectors (notably PDO doesn't support them) and should be used with caution.

Return Value

bool