function Database::closeConnection

Same name and namespace in other branches
  1. 7.x includes/database/database.inc \Database::closeConnection()
  2. 9 core/lib/Drupal/Core/Database/Database.php \Drupal\Core\Database\Database::closeConnection()
  3. 8.9.x core/lib/Drupal/Core/Database/Database.php \Drupal\Core\Database\Database::closeConnection()
  4. 10 core/lib/Drupal/Core/Database/Database.php \Drupal\Core\Database\Database::closeConnection()

Closes a connection to the server specified by the given key and target.

Parameters

string $target: The database target name. Defaults to NULL meaning that all target connections will be closed.

string $key: The database connection key. Defaults to NULL which means the active key.

18 calls to Database::closeConnection()
ConnectionFailureTest::testConnectionFailureLogging in core/modules/dblog/tests/src/Kernel/ConnectionFailureTest.php
Tests logging of connection failures.
ConnectionTest::testConnectionClosing in core/tests/Drupal/KernelTests/Core/Database/ConnectionTest.php
Tests the closing of a database connection.
Database::removeConnection in core/lib/Drupal/Core/Database/Database.php
Remove a connection and its corresponding connection information.
DriverSpecificConnectionUnitTestBase::testOpenClose in core/tests/Drupal/KernelTests/Core/Database/DriverSpecificConnectionUnitTestBase.php
Tests Database::closeConnection() without query.
DriverSpecificConnectionUnitTestBase::testOpenQueryClose in core/tests/Drupal/KernelTests/Core/Database/DriverSpecificConnectionUnitTestBase.php
Tests Database::closeConnection() with a query.

... See full list

File

core/lib/Drupal/Core/Database/Database.php, line 441

Class

Database
Primary front-controller for the database system.

Namespace

Drupal\Core\Database

Code

public static function closeConnection($target = NULL, $key = NULL) {
    // Gets the active connection by default.
    if (!isset($key)) {
        $key = self::$activeKey;
    }
    if (isset($target) && isset(self::$connections[$key][$target])) {
        if (self::$connections[$key][$target] instanceof Connection) {
            self::$connections[$key][$target]->commitAll();
        }
        unset(self::$connections[$key][$target]);
    }
    elseif (isset(self::$connections[$key])) {
        foreach (self::$connections[$key] as $connection) {
            if ($connection instanceof Connection) {
                $connection->commitAll();
            }
        }
        unset(self::$connections[$key]);
    }
    // When last connection for $key is closed, we also stop any active
    // logging.
    if (empty(self::$connections[$key])) {
        unset(self::$logs[$key]);
    }
    // Force garbage collection to run. This ensures that client connection
    // objects and results in the connection being closed are destroyed.
    gc_collect_cycles();
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.