public static function Connection::open

Same name in this branch
  1. 8.x drupal/core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection::open()
  2. 8.x drupal/core/lib/Drupal/Core/Database/Driver/mysql/Connection.php \Drupal\Core\Database\Driver\mysql\Connection::open()
  3. 8.x drupal/core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php \Drupal\Core\Database\Driver\sqlite\Connection::open()
  4. 8.x drupal/core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php \Drupal\Core\Database\Driver\pgsql\Connection::open()

Opens a PDO connection.

Parameters

array $connection_options: The database connection settings array.

Return value

\PDO A \PDO object.

Overrides Connection::open

File

drupal/core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php, line 109
Definition of Drupal\Core\Database\Driver\sqlite\Connection

Class

Connection
Specific SQLite implementation of DatabaseConnection.

Namespace

Drupal\Core\Database\Driver\sqlite

Code

public static function open(array &$connection_options = array()) {

  // Allow PDO options to be overridden.
  $connection_options += array(
    'pdo' => array(),
  );
  $connection_options['pdo'] += array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    // Convert numeric values to strings when fetching.
    PDO::ATTR_STRINGIFY_FETCHES => TRUE,
  );
  $pdo = new PDO('sqlite:' . $connection_options['database'], '', '', $connection_options['pdo']);

  // Create functions needed by SQLite.
  $pdo
    ->sqliteCreateFunction('if', array(
    __CLASS__,
    'sqlFunctionIf',
  ));
  $pdo
    ->sqliteCreateFunction('greatest', array(
    __CLASS__,
    'sqlFunctionGreatest',
  ));
  $pdo
    ->sqliteCreateFunction('pow', 'pow', 2);
  $pdo
    ->sqliteCreateFunction('length', 'strlen', 1);
  $pdo
    ->sqliteCreateFunction('md5', 'md5', 1);
  $pdo
    ->sqliteCreateFunction('concat', array(
    __CLASS__,
    'sqlFunctionConcat',
  ));
  $pdo
    ->sqliteCreateFunction('substring', array(
    __CLASS__,
    'sqlFunctionSubstring',
  ), 3);
  $pdo
    ->sqliteCreateFunction('substring_index', array(
    __CLASS__,
    'sqlFunctionSubstringIndex',
  ), 3);
  $pdo
    ->sqliteCreateFunction('rand', array(
    __CLASS__,
    'sqlFunctionRand',
  ));

  // Execute sqlite init_commands.
  if (isset($connection_options['init_commands'])) {
    $pdo
      ->exec(implode('; ', $connection_options['init_commands']));
  }
  return $pdo;
}