$encryption_key and all encryption features will be enabled only if the SQLite encryption module is installed. It's a proprietary, costly module. So if it's not present, supplying an encryption key will have absolutely no effect.(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::__construct — Создаёт экземпляр объекта SQLite3 и открывает соединение с базой
$filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = "")Создаёт экземпляр объекта SQLite3 и открывает соединение с базой. Если включили шифрование, то появляется возможность использовать ключ.
filename
       Путь к SQLite базе или :memory:, для использования базы в оперативной памяти.
       Если filename задать как пустую строку, то будет
       создана приватная, временная база данных на диске. Эта база данных будет
       удалена сразу после закрытия соединения с ней.
      
flags
       Необязательные флаги, для определения типа открытия базы данных.
       По умолчанию, используется SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.
       
          SQLITE3_OPEN_READONLY: Открыть только для чтения.
         
          SQLITE3_OPEN_READWRITE: Открыть для чтения и записи.
         
          SQLITE3_OPEN_CREATE: Создать новый файл базы данных, если он отсутствует
         
encryptionKeyНеобязательный ключ для шифрования/расшифровки базы данных. Если модуль шифрования не установлен, то данный параметр будет проигнорирован.
Метод выбрасывает исключение Exception, если возникла ошибка.
| Версия | Описание | 
|---|---|
| 7.0.10 | Параметр filenameразрешается задавать пустой строкой,
       чтобы создать на диске приватную временную базу данных. | 
Пример #1 Пример использования метода SQLite3::__construct()
<?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());
?>$encryption_key and all encryption features will be enabled only if the SQLite encryption module is installed. It's a proprietary, costly module. So if it's not present, supplying an encryption key will have absolutely no effect.Note that the SQLITE3_OPEN_READONLY flag cannot be combined with the SQLITE3_OPEN_CREATE flag. If you combine both of these flags, a rather unhelpful "Unable to open database: out of memory" exception will be thrown.