SQLite3::__construct

Instantiates an SQLite3 object and opens an SQLite 3 database

&reftitle.description; public `SQLite3::__construct` `string` `filename` `int` `flags` SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE `string` `encryptionKey`""

Instantiates an SQLite3 object and opens a connection to an SQLite 3 database. If the build includes encryption, then it will attempt to use the key.

&reftitle.parameters;

`filename`

- Path to the SQLite database, or `:memory:` to use in-memory database. If `filename` is an empty string, then a private, temporary on-disk database will be created. This private database will be automatically deleted as soon as the database connection is closed.

`flags`

- Optional flags used to determine how to open the SQLite database. By default, open uses `SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE`.

  - `SQLITE3_OPEN_READONLY`: Open the database for reading only.

  - `SQLITE3_OPEN_READWRITE`: Open the database for reading and writing.

  - `SQLITE3_OPEN_CREATE`: Create the database if it does not exist.

`encryptionKey`

- An optional encryption key used when encrypting and decrypting an SQLite database. If the SQLite encryption module is not installed, this parameter will have no effect.

&reftitle.errors;

Throws an `Exception` on failure.

&reftitle.changelog;

&Version; | &Description;
7.0.10 | The `filename` can now be empty to use a private, temporary on-disk database.

&reftitle.examples;

### `SQLite3::__construct` example

    <?php
    $db = new SQLite3('mysqlitedb.db');

    $db->exec('CREATE TABLE foo (bar TEXT)');
    $db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");

    $result = $db->query('SELECT bar FROM foo');
    var_dump($result->fetchArray());
    ?>