$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 — Instantie un objet SQLite3 et ouvre la base de données SQLite 3
$filename
, int $flags
= SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey
= "")Initialise un objet SQLite3 et ouvre une connexion à la base de données SQLite 3. Si le chiffrement a été inclus durant la compilation, alors cette fonction tentera d'utiliser la clé correspondante.
filename
Chemin vers la base de données SQLite, ou :memory:
pour utiliser
la base de données se trouvant en mémoire vive.
Si filename
est une chaîne vide, une base de
données temporaire privée sera créée sur le disque. Cette base de données
privée sera automatiquement supprimée dès que la connexion de la base de
données est fermée.
flags
Drapeaux optionnels utilisés pour déterminir la manière d'ouverture de la
base de données SQLite. Par défaut, l'ouverture s'effectue en utilisant
SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE
.
SQLITE3_OPEN_READONLY
: Ouvre la base de données
en lecture seule.
SQLITE3_OPEN_READWRITE
: Ouvre la base de données
en lecture et en écriture.
SQLITE3_OPEN_CREATE
: Crée la base de données si
elle n'existe pas.
encryptionKey
Un clé de cryptage optionnel, à utiliser lors du cryptage/décryptage de la base de données SQLite. Si le module SQLite n'est pas installé, ce paramètre n'aura aucun effet.
Lance une Exception en cas d'échec.
Version | Description |
---|---|
7.0.10 |
Le filename peut maintenant être vide pour utiliser une base de données privée, temporaire sur disque.
|
Exemple #1 Exemple avec 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.