$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)
SQLite3::__construct — Створює об'єкт класа SQLite3 та відкриває базу даних SQLite 3
$filename
[, int $flags
= SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE
[, string $encryption_key
]] )
Створює об'єкт класа SQLite3 та відкриває з'єднання для бази даних SQLite 3.
Якщо база даних має шифрування, то буде спроба використати encryption_key
(ключ шифрування).
filename
Шлях до бази даних SQLite, або рядок із записом :memory:, щоб використовувати базу даних в пам'яті.
flags
Необов'язковий флаг, для визначення - як саме відкривати базу даних SQLite. Початково, при відкритті використовується SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.
SQLITE3_OPEN_READONLY: Відкриває базу даних лише для читання.
SQLITE3_OPEN_READWRITE: Відкриває базу даних для читання та запису.
SQLITE3_OPEN_CREATE: Створює базу даних, якщо вона не існує.
encryption_key
Необов'язковий ключ шифра, що використовується при шифруванні та дешифруванні бази даних SQLite.
Повертає об'єкт бази даних SQLite3 при успіху.
Кидає Exception в разі помилки.
Приклад #1 SQLite3::__construct()
<?php
$db = new SQLite3('mysqlitedb.db');
$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('Це перевірка')");
$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.