class Connection
Same name in this branch
- 9 core/modules/sqlite/src/Driver/Database/sqlite/Connection.php \Drupal\sqlite\Driver\Database\sqlite\Connection
- 9 core/modules/mysql/src/Driver/Database/mysql/Connection.php \Drupal\mysql\Driver\Database\mysql\Connection
- 9 core/modules/system/tests/modules/database_statement_monitoring_test/src/sqlite/Connection.php \Drupal\database_statement_monitoring_test\sqlite\Connection
- 9 core/modules/system/tests/modules/database_statement_monitoring_test/src/mysql/Connection.php \Drupal\database_statement_monitoring_test\mysql\Connection
- 9 core/modules/system/tests/modules/database_statement_monitoring_test/src/pgsql/Connection.php \Drupal\database_statement_monitoring_test\pgsql\Connection
- 9 core/modules/system/tests/modules/driver_test/src/Driver/Database/DrivertestMysql/Connection.php \Drupal\driver_test\Driver\Database\DrivertestMysql\Connection
- 9 core/modules/system/tests/modules/driver_test/src/Driver/Database/DrivertestMysqlDeprecatedVersion/Connection.php \Drupal\driver_test\Driver\Database\DrivertestMysqlDeprecatedVersion\Connection
- 9 core/modules/system/tests/modules/driver_test/src/Driver/Database/DrivertestPgsql/Connection.php \Drupal\driver_test\Driver\Database\DrivertestPgsql\Connection
- 9 core/tests/fixtures/database_drivers/module/corefake/src/Driver/Database/corefake/Connection.php \Drupal\corefake\Driver\Database\corefake\Connection
- 9 core/tests/fixtures/database_drivers/module/corefake/src/Driver/Database/corefakeWithAllCustomClasses/Connection.php \Drupal\corefake\Driver\Database\corefakeWithAllCustomClasses\Connection
- 9 core/tests/fixtures/database_drivers/core/corefake/Connection.php \Drupal\Core\Database\Driver\corefake\Connection
- 9 core/tests/fixtures/database_drivers/custom/corefake/Connection.php \Drupal\Driver\Database\corefake\Connection
- 9 core/tests/fixtures/database_drivers/custom/fake/Connection.php \Drupal\Driver\Database\fake\Connection
- 9 core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php \Drupal\Core\Database\Driver\sqlite\Connection
- 9 core/lib/Drupal/Core/Database/Driver/mysql/Connection.php \Drupal\Core\Database\Driver\mysql\Connection
- 9 core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php \Drupal\Core\Database\Driver\pgsql\Connection
- 9 core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection
Same name in other branches
- 8.9.x core/modules/system/tests/modules/database_statement_monitoring_test/src/sqlite/Connection.php \Drupal\database_statement_monitoring_test\sqlite\Connection
- 8.9.x core/modules/system/tests/modules/database_statement_monitoring_test/src/mysql/Connection.php \Drupal\database_statement_monitoring_test\mysql\Connection
- 8.9.x core/modules/system/tests/modules/database_statement_monitoring_test/src/pgsql/Connection.php \Drupal\database_statement_monitoring_test\pgsql\Connection
- 8.9.x core/modules/system/tests/modules/driver_test/src/Driver/Database/DrivertestMysql/Connection.php \Drupal\driver_test\Driver\Database\DrivertestMysql\Connection
- 8.9.x core/modules/system/tests/modules/driver_test/src/Driver/Database/DrivertestMysqlDeprecatedVersion/Connection.php \Drupal\driver_test\Driver\Database\DrivertestMysqlDeprecatedVersion\Connection
- 8.9.x core/modules/system/tests/modules/driver_test/src/Driver/Database/DrivertestPgsql/Connection.php \Drupal\driver_test\Driver\Database\DrivertestPgsql\Connection
- 8.9.x core/tests/fixtures/database_drivers/module/corefake/src/Driver/Database/corefake/Connection.php \Drupal\corefake\Driver\Database\corefake\Connection
- 8.9.x core/tests/fixtures/database_drivers/core/corefake/Connection.php \Drupal\Core\Database\Driver\corefake\Connection
- 8.9.x core/tests/fixtures/database_drivers/custom/corefake/Connection.php \Drupal\Driver\Database\corefake\Connection
- 8.9.x core/tests/fixtures/database_drivers/custom/fake/Connection.php \Drupal\Driver\Database\fake\Connection
- 8.9.x core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php \Drupal\Core\Database\Driver\sqlite\Connection
- 8.9.x core/lib/Drupal/Core/Database/Driver/mysql/Connection.php \Drupal\Core\Database\Driver\mysql\Connection
- 8.9.x core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php \Drupal\Core\Database\Driver\pgsql\Connection
- 8.9.x core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection
- 10 core/modules/sqlite/src/Driver/Database/sqlite/Connection.php \Drupal\sqlite\Driver\Database\sqlite\Connection
- 10 core/modules/mysql/src/Driver/Database/mysql/Connection.php \Drupal\mysql\Driver\Database\mysql\Connection
- 10 core/modules/system/tests/modules/database_statement_monitoring_test/src/sqlite/Connection.php \Drupal\database_statement_monitoring_test\sqlite\Connection
- 10 core/modules/system/tests/modules/database_statement_monitoring_test/src/mysql/Connection.php \Drupal\database_statement_monitoring_test\mysql\Connection
- 10 core/modules/system/tests/modules/database_statement_monitoring_test/src/pgsql/Connection.php \Drupal\database_statement_monitoring_test\pgsql\Connection
- 10 core/modules/system/tests/modules/driver_test/src/Driver/Database/DrivertestMysql/Connection.php \Drupal\driver_test\Driver\Database\DrivertestMysql\Connection
- 10 core/modules/system/tests/modules/driver_test/src/Driver/Database/DrivertestMysqlDeprecatedVersion/Connection.php \Drupal\driver_test\Driver\Database\DrivertestMysqlDeprecatedVersion\Connection
- 10 core/modules/system/tests/modules/driver_test/src/Driver/Database/DrivertestPgsql/Connection.php \Drupal\driver_test\Driver\Database\DrivertestPgsql\Connection
- 10 core/modules/pgsql/src/Driver/Database/pgsql/Connection.php \Drupal\pgsql\Driver\Database\pgsql\Connection
- 10 core/tests/fixtures/database_drivers/module/core_fake/src/Driver/Database/CoreFake/Connection.php \Drupal\core_fake\Driver\Database\CoreFake\Connection
- 10 core/tests/fixtures/database_drivers/module/core_fake/src/Driver/Database/CoreFakeWithAllCustomClasses/Connection.php \Drupal\core_fake\Driver\Database\CoreFakeWithAllCustomClasses\Connection
- 10 core/tests/fixtures/database_drivers/core/CoreFake/Connection.php \Drupal\Core\Database\Driver\CoreFake\Connection
- 10 core/tests/fixtures/database_drivers/custom/CoreFake/Connection.php \Drupal\Driver\Database\CoreFake\Connection
- 10 core/tests/fixtures/database_drivers/custom/fake/Connection.php \Drupal\Driver\Database\fake\Connection
- 10 core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php \Drupal\Core\Database\Driver\sqlite\Connection
- 10 core/lib/Drupal/Core/Database/Driver/mysql/Connection.php \Drupal\Core\Database\Driver\mysql\Connection
- 10 core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php \Drupal\Core\Database\Driver\pgsql\Connection
- 10 core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection
- 11.x core/modules/sqlite/src/Driver/Database/sqlite/Connection.php \Drupal\sqlite\Driver\Database\sqlite\Connection
- 11.x core/modules/mysql/src/Driver/Database/mysql/Connection.php \Drupal\mysql\Driver\Database\mysql\Connection
- 11.x core/modules/system/tests/modules/driver_test/src/Driver/Database/DriverTestMysql/Connection.php \Drupal\driver_test\Driver\Database\DriverTestMysql\Connection
- 11.x core/modules/system/tests/modules/driver_test/src/Driver/Database/DriverTestMysqlDeprecatedVersion/Connection.php \Drupal\driver_test\Driver\Database\DriverTestMysqlDeprecatedVersion\Connection
- 11.x core/modules/system/tests/modules/driver_test/src/Driver/Database/DriverTestPgsql/Connection.php \Drupal\driver_test\Driver\Database\DriverTestPgsql\Connection
- 11.x core/modules/pgsql/src/Driver/Database/pgsql/Connection.php \Drupal\pgsql\Driver\Database\pgsql\Connection
- 11.x core/tests/fixtures/database_drivers/module/core_fake/src/Driver/Database/CoreFake/Connection.php \Drupal\core_fake\Driver\Database\CoreFake\Connection
- 11.x core/tests/fixtures/database_drivers/module/core_fake/src/Driver/Database/CoreFakeWithAllCustomClasses/Connection.php \Drupal\core_fake\Driver\Database\CoreFakeWithAllCustomClasses\Connection
- 11.x core/tests/fixtures/database_drivers/core/CoreFake/Connection.php \Drupal\Core\Database\Driver\CoreFake\Connection
- 11.x core/tests/fixtures/database_drivers/custom/CoreFake/Connection.php \Drupal\Driver\Database\CoreFake\Connection
- 11.x core/tests/fixtures/database_drivers/custom/fake/Connection.php \Drupal\Driver\Database\fake\Connection
- 11.x core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection
PostgreSQL implementation of \Drupal\Core\Database\Connection.
Hierarchy
- class \Drupal\Core\Database\Connection
- class \Drupal\pgsql\Driver\Database\pgsql\Connection extends \Drupal\Core\Database\Connection
Expanded class hierarchy of Connection
Related topics
3 files declare their use of Connection
- Connection.php in core/
modules/ system/ tests/ modules/ database_statement_monitoring_test/ src/ pgsql/ Connection.php - Connection.php in core/
modules/ system/ tests/ modules/ driver_test/ src/ Driver/ Database/ DrivertestPgsql/ Connection.php - Connection.php in core/
lib/ Drupal/ Core/ Database/ Driver/ pgsql/ Connection.php
5 string references to 'Connection'
- DriverSpecificConnectionUnitTestBase::testConnectionOpen in core/
tests/ Drupal/ KernelTests/ Core/ Database/ DriverSpecificConnectionUnitTestBase.php - Tests pdo options override.
- FileTransfer::__get in core/
lib/ Drupal/ Core/ FileTransfer/ FileTransfer.php - Implements the magic __get() method.
- FileTransfer::__isset in core/
lib/ Drupal/ Core/ FileTransfer/ FileTransfer.php - FileTransfer::__set in core/
lib/ Drupal/ Core/ FileTransfer/ FileTransfer.php - FileTransfer::__unset in core/
lib/ Drupal/ Core/ FileTransfer/ FileTransfer.php
File
-
core/
modules/ pgsql/ src/ Driver/ Database/ pgsql/ Connection.php, line 22
Namespace
Drupal\pgsql\Driver\Database\pgsqlView source
class Connection extends DatabaseConnection {
/**
* The name by which to obtain a lock for retrieve the next insert id.
*/
const POSTGRESQL_NEXTID_LOCK = 1000;
/**
* Error code for "Unknown database" error.
*/
const DATABASE_NOT_FOUND = 7;
/**
* Error code for "Connection failure" errors.
*
* Technically this is an internal error code that will only be shown in the
* PDOException message. It will need to get extracted.
*/
const CONNECTION_FAILURE = '08006';
/**
* {@inheritdoc}
*/
protected $statementClass = NULL;
/**
* {@inheritdoc}
*/
protected $statementWrapperClass = StatementWrapper::class;
/**
* A map of condition operators to PostgreSQL operators.
*
* In PostgreSQL, 'LIKE' is case-sensitive. ILIKE should be used for
* case-insensitive statements.
*/
protected static $postgresqlConditionOperatorMap = [
'LIKE' => [
'operator' => 'ILIKE',
],
'LIKE BINARY' => [
'operator' => 'LIKE',
],
'NOT LIKE' => [
'operator' => 'NOT ILIKE',
],
'REGEXP' => [
'operator' => '~*',
],
'NOT REGEXP' => [
'operator' => '!~*',
],
];
/**
* {@inheritdoc}
*/
protected $transactionalDDLSupport = TRUE;
/**
* {@inheritdoc}
*/
protected $identifierQuotes = [
'"',
'"',
];
/**
* Constructs a connection object.
*/
public function __construct(\PDO $connection, array $connection_options) {
parent::__construct($connection, $connection_options);
// Force PostgreSQL to use the UTF-8 character set by default.
$this->connection
->exec("SET NAMES 'UTF8'");
// Execute PostgreSQL init_commands.
if (isset($connection_options['init_commands'])) {
$this->connection
->exec(implode('; ', $connection_options['init_commands']));
}
}
/**
* {@inheritdoc}
*/
public static function open(array &$connection_options = []) {
// Default to TCP connection on port 5432.
if (empty($connection_options['port'])) {
$connection_options['port'] = 5432;
}
// PostgreSQL in trust mode doesn't require a password to be supplied.
if (empty($connection_options['password'])) {
$connection_options['password'] = NULL;
}
else {
$connection_options['password'] = str_replace('\\', '\\\\', $connection_options['password']);
}
$connection_options['database'] = !empty($connection_options['database']) ? $connection_options['database'] : 'template1';
$dsn = 'pgsql:host=' . $connection_options['host'] . ' dbname=' . $connection_options['database'] . ' port=' . $connection_options['port'];
// Allow PDO options to be overridden.
$connection_options += [
'pdo' => [],
];
$connection_options['pdo'] += [
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
// Prepared statements are most effective for performance when queries
// are recycled (used several times). However, if they are not re-used,
// prepared statements become inefficient. Since most of Drupal's
// prepared queries are not re-used, it should be faster to emulate
// the preparation than to actually ready statements for re-use. If in
// doubt, reset to FALSE and measure performance.
\PDO::ATTR_EMULATE_PREPARES => TRUE,
// Convert numeric values to strings when fetching.
\PDO::ATTR_STRINGIFY_FETCHES => TRUE,
];
try {
$pdo = new \PDO($dsn, $connection_options['username'], $connection_options['password'], $connection_options['pdo']);
} catch (\PDOException $e) {
if (static::getSQLState($e) == static::CONNECTION_FAILURE) {
if (strpos($e->getMessage(), 'password authentication failed for user') !== FALSE) {
throw new DatabaseAccessDeniedException($e->getMessage(), $e->getCode(), $e);
}
elseif (strpos($e->getMessage(), 'database') !== FALSE && strpos($e->getMessage(), 'does not exist') !== FALSE) {
throw new DatabaseNotFoundException($e->getMessage(), $e->getCode(), $e);
}
}
throw $e;
}
return $pdo;
}
/**
* {@inheritdoc}
*/
public function query($query, array $args = [], $options = []) {
$options += $this->defaultOptions();
// The PDO PostgreSQL driver has a bug which doesn't type cast booleans
// correctly when parameters are bound using associative arrays.
// @see http://bugs.php.net/bug.php?id=48383
foreach ($args as &$value) {
if (is_bool($value)) {
$value = (int) $value;
}
}
// We need to wrap queries with a savepoint if:
// - Currently in a transaction.
// - A 'mimic_implicit_commit' does not exist already.
// - The query is not a savepoint query.
$wrap_with_savepoint = $this->inTransaction() && !isset($this->transactionLayers['mimic_implicit_commit']) && !(is_string($query) && (stripos($query, 'ROLLBACK TO SAVEPOINT ') === 0 || stripos($query, 'RELEASE SAVEPOINT ') === 0 || stripos($query, 'SAVEPOINT ') === 0));
if ($wrap_with_savepoint) {
// Create a savepoint so we can rollback a failed query. This is so we can
// mimic MySQL and SQLite transactions which don't fail if a single query
// fails. This is important for tables that are created on demand. For
// example, \Drupal\Core\Cache\DatabaseBackend.
$this->addSavepoint();
try {
$return = parent::query($query, $args, $options);
$this->releaseSavepoint();
} catch (\Exception $e) {
$this->rollbackSavepoint();
throw $e;
}
}
else {
$return = parent::query($query, $args, $options);
}
return $return;
}
/**
* {@inheritdoc}
*/
public function prepareStatement(string $query, array $options, bool $allow_row_count = FALSE) : StatementInterface {
// mapConditionOperator converts some operations (LIKE, REGEXP, etc.) to
// PostgreSQL equivalents (ILIKE, ~*, etc.). However PostgreSQL doesn't
// automatically cast the fields to the right type for these operators,
// so we need to alter the query and add the type-cast.
$query = preg_replace('/ ([^ ]+) +(I*LIKE|NOT +I*LIKE|~\\*|!~\\*) /i', ' ${1}::text ${2} ', $query);
return parent::prepareStatement($query, $options, $allow_row_count);
}
public function queryRange($query, $from, $count, array $args = [], array $options = []) {
return $this->query($query . ' LIMIT ' . (int) $count . ' OFFSET ' . (int) $from, $args, $options);
}
/**
* {@inheritdoc}
*/
public function queryTemporary($query, array $args = [], array $options = []) {
$tablename = $this->generateTemporaryTableName();
$this->query('CREATE TEMPORARY TABLE {' . $tablename . '} AS ' . $query, $args, $options);
return $tablename;
}
public function driver() {
return 'pgsql';
}
public function databaseType() {
return 'pgsql';
}
/**
* Overrides \Drupal\Core\Database\Connection::createDatabase().
*
* @param string $database
* The name of the database to create.
*
* @throws \Drupal\Core\Database\DatabaseNotFoundException
*/
public function createDatabase($database) {
// Escape the database name.
$database = Database::getConnection()->escapeDatabase($database);
// If the PECL intl extension is installed, use it to determine the proper
// locale. Otherwise, fall back to en_US.
if (class_exists('Locale')) {
$locale = \Locale::getDefault();
}
else {
$locale = 'en_US';
}
try {
// Create the database and set it as active.
$this->connection
->exec("CREATE DATABASE {$database} WITH TEMPLATE template0 ENCODING='utf8' LC_CTYPE='{$locale}.utf8' LC_COLLATE='{$locale}.utf8'");
} catch (\Exception $e) {
throw new DatabaseNotFoundException($e->getMessage());
}
}
public function mapConditionOperator($operator) {
return static::$postgresqlConditionOperatorMap[$operator] ?? NULL;
}
/**
* Retrieve a the next id in a sequence.
*
* PostgreSQL has built in sequences. We'll use these instead of inserting
* and updating a sequences table.
*/
public function nextId($existing = 0) {
// Retrieve the name of the sequence. This information cannot be cached
// because the prefix may change, for example, like it does in tests.
$sequence_name = $this->makeSequenceName('sequences', 'value');
// When PostgreSQL gets a value too small then it will lock the table,
// retry the INSERT and if it's still too small then alter the sequence.
$id = $this->query("SELECT nextval('" . $sequence_name . "')")
->fetchField();
if ($id > $existing) {
return $id;
}
// PostgreSQL advisory locks are simply locks to be used by an
// application such as Drupal. This will prevent other Drupal processes
// from altering the sequence while we are.
$this->query("SELECT pg_advisory_lock(" . self::POSTGRESQL_NEXTID_LOCK . ")");
// While waiting to obtain the lock, the sequence may have been altered
// so lets try again to obtain an adequate value.
$id = $this->query("SELECT nextval('" . $sequence_name . "')")
->fetchField();
if ($id > $existing) {
$this->query("SELECT pg_advisory_unlock(" . self::POSTGRESQL_NEXTID_LOCK . ")");
return $id;
}
// Reset the sequence to a higher value than the existing id.
$this->query("ALTER SEQUENCE " . $sequence_name . " RESTART WITH " . ($existing + 1));
// Retrieve the next id. We know this will be as high as we want it.
$id = $this->query("SELECT nextval('" . $sequence_name . "')")
->fetchField();
$this->query("SELECT pg_advisory_unlock(" . self::POSTGRESQL_NEXTID_LOCK . ")");
return $id;
}
/**
* {@inheritdoc}
*/
public function getFullQualifiedTableName($table) {
$options = $this->getConnectionOptions();
$prefix = $this->tablePrefix($table);
// The fully qualified table name in PostgreSQL is in the form of
// <database>.<schema>.<table>, so we have to include the 'public' schema in
// the return value.
return $options['database'] . '.public.' . $prefix . $table;
}
/**
* Add a new savepoint with a unique name.
*
* The main use for this method is to mimic InnoDB functionality, which
* provides an inherent savepoint before any query in a transaction.
*
* @param $savepoint_name
* A string representing the savepoint name. By default,
* "mimic_implicit_commit" is used.
*
* @see Drupal\Core\Database\Connection::pushTransaction()
*/
public function addSavepoint($savepoint_name = 'mimic_implicit_commit') {
if ($this->inTransaction()) {
$this->pushTransaction($savepoint_name);
}
}
/**
* Release a savepoint by name.
*
* @param $savepoint_name
* A string representing the savepoint name. By default,
* "mimic_implicit_commit" is used.
*
* @see Drupal\Core\Database\Connection::popTransaction()
*/
public function releaseSavepoint($savepoint_name = 'mimic_implicit_commit') {
if (isset($this->transactionLayers[$savepoint_name])) {
$this->popTransaction($savepoint_name);
}
}
/**
* Rollback a savepoint by name if it exists.
*
* @param $savepoint_name
* A string representing the savepoint name. By default,
* "mimic_implicit_commit" is used.
*/
public function rollbackSavepoint($savepoint_name = 'mimic_implicit_commit') {
if (isset($this->transactionLayers[$savepoint_name])) {
$this->rollBack($savepoint_name);
}
}
/**
* {@inheritdoc}
*/
public function hasJson() : bool {
try {
return (bool) $this->query('SELECT JSON_TYPEOF(\'1\')');
} catch (\Exception $e) {
return FALSE;
}
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|---|
Connection::$connection | protected | property | The actual client connection. | |||
Connection::$connectionOptions | protected | property | The connection information for this connection object. | |||
Connection::$driverClasses | protected | property | Index of what driver-specific class to use for various operations. | |||
Connection::$escapedAliases | protected | property | List of escaped aliases names, keyed by unescaped aliases. | |||
Connection::$escapedFields | protected | property | List of escaped field names, keyed by unescaped names. | |||
Connection::$escapedNames | Deprecated | protected | property | List of escaped database, table, and field names, keyed by unescaped names. | ||
Connection::$escapedTables | protected | property | List of escaped table names, keyed by unescaped names. | |||
Connection::$identifierQuotes | protected | property | The identifier quote characters for the database type. | Overrides Connection::$identifierQuotes | ||
Connection::$key | protected | property | The key representing this connection. | |||
Connection::$logger | protected | property | The current database logging object for this connection. | |||
Connection::$postgresqlConditionOperatorMap | protected static | property | A map of condition operators to PostgreSQL operators. | |||
Connection::$prefixes | protected | property | The prefixes used by this database connection. | |||
Connection::$prefixReplace | protected | property | List of replacement values for use in prefixTables(). | |||
Connection::$prefixSearch | protected | property | List of search values for use in prefixTables(). | |||
Connection::$rootTransactionEndCallbacks | protected | property | Post-root (non-nested) transaction commit callbacks. | |||
Connection::$schema | protected | property | The schema object for this connection. | |||
Connection::$statementClass | protected | property | The name of the Statement class for this connection. | Overrides Connection::$statementClass | ||
Connection::$statementWrapperClass | protected | property | The name of the StatementWrapper class for this connection. | Overrides Connection::$statementWrapperClass | ||
Connection::$target | protected | property | The database target this connection is for. | |||
Connection::$temporaryNameIndex | Deprecated | protected | property | An index used to generate unique temporary table names. | ||
Connection::$transactionalDDLSupport | protected | property | Whether this database connection supports transactional DDL. | Overrides Connection::$transactionalDDLSupport | ||
Connection::$transactionLayers | protected | property | Tracks the number of "layers" of transactions currently active. | |||
Connection::$unprefixedTablesMap | protected | property | List of un-prefixed table names, keyed by prefixed table names. | |||
Connection::addRootTransactionEndCallback | public | function | Adds a root transaction end callback. | |||
Connection::addSavepoint | public | function | Add a new savepoint with a unique name. | |||
Connection::attachDatabase | public | function | Allows the connection to access additional databases. | 1 | ||
Connection::clientVersion | public | function | Returns the version of the database client. | |||
Connection::commit | public | function | Throws an exception to deny direct access to transaction commits. | |||
Connection::condition | public | function | Prepares and returns a CONDITION query object. | |||
Connection::CONNECTION_FAILURE | constant | Error code for "Connection failure" errors. | ||||
Connection::createConnectionOptionsFromUrl | public static | function | Creates an array of database connection options from a URL. | 1 | ||
Connection::createDatabase | public | function | Overrides \Drupal\Core\Database\Connection::createDatabase(). | Overrides Connection::createDatabase | ||
Connection::createUrlFromConnectionOptions | public static | function | Creates a URL from an array of database connection options. | 1 | ||
Connection::databaseType | public | function | Returns the name of the database engine accessed by this driver. | Overrides Connection::databaseType | ||
Connection::DATABASE_NOT_FOUND | constant | Error code for "Unknown database" error. | ||||
Connection::defaultOptions | protected | function | Returns the default query options for any given query. | |||
Connection::delete | public | function | Prepares and returns a DELETE query object. | |||
Connection::destroy | Deprecated | public | function | Destroys this Connection object. | ||
Connection::doCommit | protected | function | Do the actual commit, invoke post-commit callbacks. | 1 | ||
Connection::driver | public | function | Returns the type of database driver. | Overrides Connection::driver | 1 | |
Connection::escapeAlias | public | function | Escapes an alias name string. | |||
Connection::escapeDatabase | public | function | Escapes a database name string. | |||
Connection::escapeField | public | function | Escapes a field name string. | |||
Connection::escapeLike | public | function | Escapes characters that work as wildcard characters in a LIKE pattern. | |||
Connection::escapeTable | public | function | Escapes a table name string. | |||
Connection::exceptionHandler | public | function | Returns the database exceptions handler. | |||
Connection::expandArguments | protected | function | Expands out shorthand placeholders. | |||
Connection::filterComment | protected | function | Sanitize a query comment string. | |||
Connection::generateTemporaryTableName | Deprecated | protected | function | Generates a temporary table name. | ||
Connection::getConnectionOptions | public | function | Returns the connection information for this connection object. | |||
Connection::getDriverClass | public | function | Gets the driver-specific override class if any for the specified class. | |||
Connection::getFullQualifiedTableName | public | function | Get a fully qualified table name. | Overrides Connection::getFullQualifiedTableName | ||
Connection::getKey | public | function | Returns the key this connection is associated with. | |||
Connection::getLogger | public | function | Gets the current logging object for this connection. | |||
Connection::getPagerManager | public | function | Get the pager manager service, if available. | |||
Connection::getProvider | public | function | Get the module name of the module that is providing the database driver. | |||
Connection::getSQLState | protected static | function | Extracts the SQLSTATE error from a PDOException. | |||
Connection::getTarget | public | function | Returns the target this connection is associated with. | |||
Connection::getUnprefixedTablesMap | public | function | Gets a list of individually prefixed table names. | |||
Connection::handleQueryException | Deprecated | protected | function | Wraps and re-throws any PDO exception thrown by static::query(). | 2 | |
Connection::hasJson | public | function | Runs a simple query to validate json datatype support. | Overrides Connection::hasJson | ||
Connection::insert | public | function | Prepares and returns an INSERT query object. | |||
Connection::inTransaction | public | function | Determines if there is an active transaction open. | |||
Connection::lastInsertId | public | function | Returns the ID of the last inserted row or sequence value. | |||
Connection::makeComment | public | function | Flatten an array of query comments into a single comment string. | |||
Connection::makeSequenceName | public | function | Creates the appropriate sequence name for a given table and serial field. | |||
Connection::mapConditionOperator | public | function | Gets any special processing requirements for the condition operator. | Overrides Connection::mapConditionOperator | ||
Connection::merge | public | function | Prepares and returns a MERGE query object. | |||
Connection::nextId | public | function | Retrieve a the next id in a sequence. | Overrides Connection::nextId | ||
Connection::open | public static | function | Opens a client connection. | Overrides Connection::open | ||
Connection::popCommittableTransactions | protected | function | Commit all the transaction layers that can commit. | 1 | ||
Connection::popTransaction | public | function | Decreases the depth of transaction nesting. | |||
Connection::POSTGRESQL_NEXTID_LOCK | constant | The name by which to obtain a lock for retrieve the next insert id. | ||||
Connection::prefixTables | public | function | Appends a database prefix to all tables in a query. | |||
Connection::prepare | Deprecated | public | function | Prepares a statement for execution and returns a statement object. | 1 | |
Connection::prepareQuery | Deprecated | public | function | Prepares a query string and returns the prepared statement. | ||
Connection::prepareStatement | public | function | Returns a prepared statement given a SQL string. | Overrides Connection::prepareStatement | ||
Connection::preprocessStatement | protected | function | Returns a string SQL statement ready for preparation. | |||
Connection::pushTransaction | public | function | Increases the depth of transaction nesting. | |||
Connection::query | public | function | Executes a query string against the database. | Overrides Connection::query | ||
Connection::queryRange | public | function | Runs a limited-range query on this database object. | Overrides Connection::queryRange | ||
Connection::queryTemporary | public | function | Runs a SELECT query and stores its results in a temporary table. | Overrides Connection::queryTemporary | ||
Connection::quote | public | function | Quotes a string for use in a query. | |||
Connection::quoteIdentifiers | public | function | Quotes all identifiers in a query. | |||
Connection::releaseSavepoint | public | function | Release a savepoint by name. | |||
Connection::rollBack | public | function | Rolls back the transaction entirely or to a named savepoint. | 1 | ||
Connection::rollbackSavepoint | public | function | Rollback a savepoint by name if it exists. | |||
Connection::schema | public | function | Returns a DatabaseSchema object for manipulating the schema. | |||
Connection::select | public | function | Prepares and returns a SELECT query object. | |||
Connection::setKey | public | function | Tells this connection object what its key is. | |||
Connection::setLogger | public | function | Associates a logging object with this connection. | |||
Connection::setPrefix | protected | function | Set the list of prefixes used by this database connection. | |||
Connection::setTarget | public | function | Tells this connection object what its target value is. | |||
Connection::startTransaction | public | function | Returns a new DatabaseTransaction object on this connection. | |||
Connection::supportsTransactionalDDL | public | function | Determines if this driver supports transactional DDL. | |||
Connection::supportsTransactions | Deprecated | public | function | Determines if this driver supports transactions. | ||
Connection::tablePrefix | public | function | Find the prefix for a table. | |||
Connection::transactionDepth | public | function | Determines the current transaction depth. | |||
Connection::truncate | public | function | Prepares and returns a TRUNCATE query object. | |||
Connection::update | public | function | Prepares and returns an UPDATE query object. | |||
Connection::upsert | public | function | Prepares and returns an UPSERT query object. | |||
Connection::version | public | function | Returns the version of the database server. | 1 | ||
Connection::__construct | public | function | Constructs a connection object. | Overrides Connection::__construct | ||
Connection::__destruct | public | function | Ensures that the client connection can be garbage collected. | 2 | ||
Connection::__sleep | public | function | Prevents the database connection from being serialized. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.