/Drupal 8

function db_transaction

db_transaction($name = NULL, array $options = array())

Returns a new transaction object for the active database.


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.


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. For example, $injected_database->startTransaction($name);

See also



Related topics

Database abstraction layer
Allow the use of different database servers using the same code base.


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


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

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.