(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
sqlite_open — Öffnet eine SQLite-Datenbank und erzeugt die Datenbank, wenn diese nicht existiert.
$filename
[, int $mode
= 0666
[, string &$error_message
]] )Objektorientierter Stil (Konstruktor):
$filename
[, int $mode
= 0666
[, string &$error_message
]] )Öffnet eine SQLite-Datenbank. Wenn die Datenbank nicht existiert, wird sie erzeugt.
filename
Dateiname der SQLite-Datenbank. Es handelt sich dabei entweder um einen relativen, oder einen absoluten Pfad zu der Datei, in der SQLite die Daten speichern wird. Wenn die Datei noch nicht existiert, wird SQlite versuchen, sie zu erzeugen. Sie MÜSSEN Schreibrechte auf die Datei haben, wenn Sie Daten in die Datenbank eintragen oder die Datenbank ändern wollen.
mode
Modus der Datei. Dieser sollte genutzt werden, wenn die Datenbank
nur Lesezugriff erlauben soll.
Zur Zeit wird dieser Parameter von der SQLite-Bibliothek ignoriert.
Der Standardwert für Modus ist der oktale Wert 0666.
Es handelt sich dabei um den empfohlenen Wert, wenn der Parameter
error_message
genutzt werden soll.
error_message
Wird als Referenz übergeben und wird im Fehlerfall eine aussagekräftige Fehlermeldung enthalten. Diese wird erklären, warum die Datenbank nicht geöffnet werden konnte.
Liefert eine Ressource (Datenbankverbindung) nach erfolgreichem
Verbindungsaufbau. Ist ein Fehler aufgetreten wird FALSE
zurückgegeben.
Beispiel #1 sqlite_open()-Beispiel
<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');
sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
$result = sqlite_query($db, 'select bar from foo');
var_dump(sqlite_fetch_array($result));
} else {
die($sqliteerror);
}
?>
In Unix-Umgebungen reagiert SQLite auf Skripte, die den Systembefehl fork() nutzen. Sollten Sie ein solches Skript einsetzen, ist es ratsam bestehende Datenbankverbindungen zu beenden, anschließend den Fork ausführen, um dann die Verbindung entweder in einem Kind- oder dem Eltern-Prozess wieder herzustellen. Mehr Informationen zu diesem Thema finden Sie unter » Die C Sprachenschnittstelle zur SQLite-Bibliothek in dem Kapitel names Multi-Threading And SQLite.
Es ist nicht empfehlenswert mit SQLite-Datenbanken zu arbeiten, die auf einer via NFS verbundenen Partition gespeichert sind. NFS neigt notorisch zu einem unvorhersehbarem Verhalten, wenn Dateien exklusiv gegen den Zugriff durch Dritte gesperrt werden. Dabei kann es sein, dass entweder eine Datenbankverbindung gar nicht zustande kommt, oder das Sperrverhalten undefiniert ist.
Hinweis: Seit der SQLite-Bibliothek in der Version 2.8.2, ist es möglich :memory: als
filename
anzugeben. Die erzeugte Datenbank wird dann ausschließlich im Speicher des Computers erzeugt und verwaltet. Dies ist nützlich bei der temporären Datenverarbeitung, da die Datenbank mit Prozessende zerstört wird. Eine solche Datenbank ist ebenfals nützlich, wenn sie in Verbindung mit dem ATTACH DATABASE SQL-Befehl andere Datenbanken einbindet, um Daten zwischen diesen auszutauschen und abzufragen.
Hinweis: SQLite berücksichtigt Safe Mode und open_basedir.