function Schema::executeDdlStatement
Executes a data definition language (DDL) statement.
This method allows to void an active transaction when the driver does not support transactional DDL.
Parameters
string $sql: The DDL statement to execute. This is a SQL string that may contain placeholders.
array $arguments: (Optional) The associative array of arguments for the prepared statement.
array $options: (Optional) An associative array of options to control how the query is run. The given options will be merged with self::defaultOptions().
30 calls to Schema::executeDdlStatement()
- Schema::addField in core/
modules/ pgsql/ src/ Driver/ Database/ pgsql/ Schema.php - Add a new field to a table.
- Schema::addField in core/
modules/ sqlite/ src/ Driver/ Database/ sqlite/ Schema.php - Add a new field to a table.
- Schema::addField in core/
modules/ mysql/ src/ Driver/ Database/ mysql/ Schema.php - Add a new field to a table.
- Schema::addIndex in core/
modules/ pgsql/ src/ Driver/ Database/ pgsql/ Schema.php - Add an index.
- Schema::addIndex in core/
modules/ sqlite/ src/ Driver/ Database/ sqlite/ Schema.php - Add an index.
File
-
core/
lib/ Drupal/ Core/ Database/ Schema.php, line 136
Class
- Schema
- Provides a base implementation for Database Schema.
Namespace
Drupal\Core\DatabaseCode
protected function executeDdlStatement(string $sql, array $arguments = [], array $options = []) : void {
$this->connection
->query($sql, $arguments, $options);
// DDL statements when in a transaction force a commit in some databases.
// Void the transaction in that case.
if (!$this->connection
->supportsTransactionalDDL() && $this->connection
->transactionManager()
->inTransaction()) {
$this->connection
->transactionManager()
->voidClientTransaction();
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.