You are here

function db_transaction in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/includes/database.inc \db_transaction()

Returns a new transaction object for the active database.

Parameters

string $name: Optional name of the transaction.

array $options: An array of options to control how the transaction operates:

  • target: The database target name.

Return value

\Drupal\Core\Database\Transaction A new Transaction object for this connection.

Deprecated

as of Drupal 8.0.x, will be removed in Drupal 9.0.0. Instead, get a database connection injected into your service from the container and call startTransaction() on it. E.g. $injected_database->startTransaction($name);

See also

\Drupal\Core\Database\Connection::startTransaction()

\Drupal\Core\Database\Connection::defaultOptions()

Related topics

5 calls to db_transaction()
MenuRouterRebuildSubscriber::menuLinksRebuild in core/lib/Drupal/Core/EventSubscriber/MenuRouterRebuildSubscriber.php
Perform menu-specific rebuilding.
TransactionTest::testTransactionStacking in core/modules/system/src/Tests/Database/TransactionTest.php
Tests transaction stacking, commit, and rollback.
TransactionTest::testTransactionWithDdlStatement in core/modules/system/src/Tests/Database/TransactionTest.php
Tests the compatibility of transactions with DDL statements.
TransactionTest::transactionInnerLayer in core/modules/system/src/Tests/Database/TransactionTest.php
Creates an "inner layer" transaction.
TransactionTest::transactionOuterLayer in core/modules/system/src/Tests/Database/TransactionTest.php
Encapsulates a transaction's "inner layer" with an "outer layer".

File

core/includes/database.inc, line 313
Core systems for the database layer.

Code

function db_transaction($name = NULL, array $options = array()) {
  if (empty($options['target'])) {
    $options['target'] = 'default';
  }
  return Database::getConnection($options['target'])
    ->startTransaction($name);
}