Error message
You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).function DatabaseConnection_sqlite::popTransaction
Decreases the depth of transaction nesting.
If we pop off the last transaction layer, then we either commit or roll back the transaction as necessary. If no transaction is active, we return because the transaction may have manually been rolled back.
Parameters
$name: The name of the savepoint
Overrides DatabaseConnection::popTransaction
File
-
includes/
database/ sqlite/ database.inc, line 376
Class
- DatabaseConnection_sqlite
- Specific SQLite implementation of DatabaseConnection.
Code
public function popTransaction($name) {
if ($this->savepointSupport ) {
return parent ::popTransaction ($name);
}
if (!$this->supportsTransactions ()) {
return;
}
if (!$this->inTransaction ()) {
throw new DatabaseTransactionNoActiveException ();
}
// Commit everything since SAVEPOINT $name.
while ($savepoint = array_pop ($this->transactionLayers )) {
if ($savepoint != $name) {
continue;
}
// If there are no more layers left then we should commit or rollback.
if (empty($this->transactionLayers )) {
// If there was any rollback() we should roll back whole transaction.
if ($this->willRollback ) {
$this->willRollback = FALSE;
$this->connection
->rollBack ();
}
elseif (!$this->connection
->commit ()) {
throw new DatabaseTransactionCommitFailedException ();
}
}
else {
break;
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.