SQLite3::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::__construct Instanziiert ein SQLite3-Objekt und öffnet eine SQLite3-Datenbank

Beschreibung

public SQLite3::__construct(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = "")

Instanziiert ein SQLite3-Objekt und öffnet eine Verbindung zu einer SQLite3-Datenbank. Wurde libsqlite3 mit Unterstützung für Verschlüsselung kompiliert, wird versucht den angegebenen Schlüssel zu nutzen.

Parameter-Liste

filename

Pfad zur SQLite-Datenbank oder :memory:, um eine im Speicher befindliche Datenbank zu nutzen. Ist filename eine leere Zeichenkette, dann wird eine private, temporäre Datenbank auf der Festplatte erzeugt. Diese private Datenbank wird automatisch gelöscht, sobald die Datenbankverbindung geschlossen wird.

flags

Optionale Schalter, die die Art bestimmen, wie die SQLite-Datenbank geöffnet wird. Standardmäßig wird SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE zum Öffnen genutzt.

  • SQLITE3_OPEN_READONLY: Öffnet die Datenbank im "nur-lese"-Modus.

  • SQLITE3_OPEN_READWRITE: Öffnet die Datenbank zum Lesen und Schreiben.

  • SQLITE3_OPEN_CREATE: erzeugt die Datenbank, sollte diese nicht existieren.

encryptionKey

Eine optionale Verschlüsselungs-Phrase, die zur Ver- und Entschlüsselung der Datenbank genutzt wird. Ist das SQLite-Verschlüsselungsmodul nicht installiert, dann hat dieser Parameter keine Wirkung.

Fehler/Exceptions

Löst im Fehlerfall eine Exception aus.

Changelog

Version Beschreibung
7.0.10 Der Parameter filename kann nun leer sein, um eine private, temporäre Datenbank auf der Festplatte zu verwenden.

Beispiele

Beispiel #1 SQLite3::__construct()-Beispiel

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

$db->exec('CREATE TABLE foo (bar TEXT)');
$db->exec("INSERT INTO foo (bar) VALUES ('Dies ist ein Test')");

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

add a note add a note

User Contributed Notes 2 notes

up
11
bohwaz
13 years ago
$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.
up
6
jtreurniet at example dot com
7 years ago
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.
To Top