function Database::openConnection
Same name in other branches
- 7.x includes/database/database.inc \Database::openConnection()
- 9 core/lib/Drupal/Core/Database/Database.php \Drupal\Core\Database\Database::openConnection()
- 10 core/lib/Drupal/Core/Database/Database.php \Drupal\Core\Database\Database::openConnection()
- 11.x core/lib/Drupal/Core/Database/Database.php \Drupal\Core\Database\Database::openConnection()
Opens a connection to the server specified by the given key and target.
Parameters
string $key: The database connection key, as specified in settings.php. The default is "default".
string $target: The database target to open.
Throws
\Drupal\Core\Database\ConnectionNotDefinedException
\Drupal\Core\Database\DriverNotSpecifiedException
1 call to Database::openConnection()
- Database::getConnection in core/
lib/ Drupal/ Core/ Database/ Database.php - Gets the connection object for the specified database key and target.
File
-
core/
lib/ Drupal/ Core/ Database/ Database.php, line 360
Class
- Database
- Primary front-controller for the database system.
Namespace
Drupal\Core\DatabaseCode
protected static final function openConnection($key, $target) {
// If the requested database does not exist then it is an unrecoverable
// error.
if (!isset(self::$databaseInfo[$key])) {
throw new ConnectionNotDefinedException('The specified database connection is not defined: ' . $key);
}
if (!($driver = self::$databaseInfo[$key][$target]['driver'])) {
throw new DriverNotSpecifiedException('Driver not specified for this database connection: ' . $key);
}
$namespace = static::getDatabaseDriverNamespace(self::$databaseInfo[$key][$target]);
$driver_class = $namespace . '\\Connection';
$pdo_connection = $driver_class::open(self::$databaseInfo[$key][$target]);
$new_connection = new $driver_class($pdo_connection, self::$databaseInfo[$key][$target]);
$new_connection->setTarget($target);
$new_connection->setKey($key);
// If we have any active logging objects for this connection key, we need
// to associate them with the connection we just opened.
if (!empty(self::$logs[$key])) {
$new_connection->setLogger(self::$logs[$key]);
}
return $new_connection;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.