Forum und email

SQLite

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Einführung

Dies ist eine Extension für den eingebetteten Datenbankserver SQLite. SQLite ist eine C-Bibliothek, die eine eingebettete Datenbankserver-Software enthält. Programme, die mit der SQLite Bibliothek verlinkt sind, können SQL-Datenbanken ohne einen separaten RDBMS-Prozess, also ohnen einen separaten Datenbankserver nutzen.

SQLite ist keine Client-Bibliothek, die zur Verbindung mit einem grossen Datenbankserver genutzt wird. SQLite ist der Server. Die SQLite-Bibliothek liesst und schreibt direkt von und auf die Datenbankdateien auf der Festplatte.

Hinweis: Weitere Informationen finden Sie auf der SQLite Website. (» http://sqlite.org/).

Installation

Lesen Sie die Datei INSTALL, die im SQLite-Verzeichnis enthalten ist. SQLite selbst ist automatisch enthalten, es ist nicht notwendig, weitere Software zu installieren.

Windows-Nutzer können die DLL-Version der SQLite-Extension hier downloaden: (» php_sqlite.dll).

Kontaktinformationen

Mögliche Fragen über die Extension sollten auf den » PHP Mailinglisten gestellt werden.

Anforderungen

Um die SQLite-Funktionen nutzen zu können, muss PHP mit SQLite-Support kompiliert werden, oder die SQLite-Extension dynamisch in der php.ini geladen werden.

Resource Typen

Die SQLite-Extension nutz zwei verschiedene Resource-Typen. Der erste die die Datenbankverbindung, der zweite das Abfrageergebnis.

Vordefinierte Konstanten

Die Funktionen sqlite_fetch_array() und sqlite_current() nutzen eine Konstante für die unterschiedlichen Varianten von Ergebnis-Arrays. Die folgenden Konstanten sind definiert:

SQLite Fetch Konstanten
Konstante Bedeutung
SQLITE_ASSOC Die Spalten werden in einem Array zurückgeliefert, bei dem der Spaltenname als Hashindex genutzt wird.
SQLITE_BOTH Die Spalten werden in dem Array sowohl als numerischer wie auch als Spaltenname als Hashindex zurückgeliefert.
SQLITE_NUM Die Spalten werden in dem Array nur mit einem numerischem Index zurückgeliefert. Der Index beginnt mit 0 für das erste Feld des Ergebnisses.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

SQLite Konfiguration
Name Voreinstellung Einstellbar
sqlite.assoc_case 0 PHP_INI_SYSTEM
Für weitere Details und die Definition der PHP_INI_*-Konstanten siehe ini_set().

Hier ist eine kurze Erläuterung der Konfigurationseinstellungen.

sqlite.assoc_case int

Ob gemischte Schreibweise (0), Grossbuchstaben (1) oder Kleinbuchstaben (2 für die Hash Indizes genutzt werden soll.

Diese Option ist vor allen für die Kompatiblität zu anderen Datenbanksystemen notwendig, in denen die Namen der Spalten immer als Gross- oder Kleinbuchstaben zurückgeliefert werden - unabhängig von den eigentlichen Spaltenbezeichnungen im Datenbankschema.

Die SQLite Bibliothek liefert die Spaltennamen in ihrer echten Schreibweise zurück (die dem entspricht, was Sie im Datenbankschema nutzen). Wenn sqlite.assoc_case auf 0 gesetzt ist, bleibt diese Schreibweise erhalten. Wenn es auf 1 oder 2 gesetzt ist, wird der Spaltenname von PHP automatisch zu Gross- bzw. Kleinbuchstaben gewandelt.

Das Nutzen dieser Option erzeugt eine leichte Geschwindigkeitseinbuße, ist aber DEUTLICH schneller als die Nutzung von strtolower() oder strtoupper() im PHP-Script.

Inhaltsverzeichnis

  • sqlite_array_query — Führt eine Datenbankabfrage durch und liefert das komplette Abfrageergebnis als Array zurück.
  • sqlite_busy_timeout — Setzt die maximale Dauer für das Warten auf die Freigabe einer Datenbank, oder sperrt das Warten selbst.
  • sqlite_changes — Gibt die Anzahl Zeilen zurück, die vom letzten SQL-Befehl geändert wurden.
  • sqlite_close — Schliesst eine offene SQLite Datenbank.
  • sqlite_column — Holt eine Spalte aus der aktuellen Zeile des Abfrageergebnisses.
  • sqlite_create_aggregate — Registriert eine benutzerdefinierte Funktion, um SQL-Abfragen zu aggregieren.
  • sqlite_create_function — Erzeugt eine "reguläre" nutzerdefinierte Funktion für den Gebrauch in SQL-Befehlen.
  • sqlite_current — Holt die aktuelle Zeile als Array aus dem Abfrageergebnis.
  • sqlite_error_string — Liefert eine lesbare Beschreibung zu einem Fehlercode.
  • sqlite_escape_string — Bereit einen String für die Verwendund als SQL-Parameter auf.
  • sqlite_exec — Führt eine Abfrage ohne Ergebnis in einer definierten Datenbank aus
  • sqlite_factory — Öffnet eine SQLite-Datenbank und gibt ein SQLiteDatabase-Objekt zurück.
  • sqlite_fetch_all — Holt sich alle Reihen eines Abfrageergebnisses und liefert sie als Array im Array zurück
  • sqlite_fetch_array — Holt die nächste Zeile aus einem Datenbankergebnis und gibt sie als Array zurück.
  • sqlite_fetch_column_types — Liefert ein Array mit den Spaltentypen einer bestimmten Tabelle
  • sqlite_fetch_object — Holt sich die nächste Reihe des Ergebnisses und gibt diese als Objekt zurück.
  • sqlite_fetch_single — Holt sich die erste Spalte eines Abfrageergebnisses als String
  • sqlite_fetch_string — Liefert die erste Spalte eines Abfrageergebnisses als String zurück.
  • sqlite_field_name — Gibt den Namen eines bestimmten Feldes zurück.
  • sqlite_has_more — Liefert zurück, ob noch mehr Zeilen im Ergebnis vorliegen
  • sqlite_has_prev — Gibt zurück, ob eine vorige Reihe existiert oder nicht
  • sqlite_key — Liefert den aktuellen Zeilenindex
  • sqlite_last_error — Gibt den Fehlercode des letzten Fehlers für eine Datenbank zurück.
  • sqlite_last_insert_rowid — Gibt die Nummer der zuletzt eingefügten Zeile zurück.
  • sqlite_libencoding — Gibt die Kodierung der genutzten SQLite-Bibliothek zurück.
  • sqlite_libversion — Liefert die Version der genutzten SQLite-Bibliothek zurück.
  • sqlite_next — Springt zur nächsten Zeile
  • sqlite_num_fields — Gibt die Anzahl Felder für ein Abfrageergebnis zurück
  • sqlite_num_rows — Liefert die Anzahl an Zeilen, die in einem Abfrageergebnis enthalten sind, zurück
  • sqlite_open — Öffnet eine SQLite Datenbank. Wenn die Datenbank nicht existiert, wird sie erzeugt.
  • sqlite_popen — Opens a persistent handle to an SQLite database. Will create the database if it does not exist
  • sqlite_prev — Springt zur vorige Zeile
  • sqlite_query — Führt auf einer Datenbank eine Abfrage durch und liefert das Abfrageergebnis zurück.
  • sqlite_rewind — Springt zur ersten Zeile
  • sqlite_seek — Springe auf eine bestimmte Zeilennummer
  • sqlite_single_query — Führt eine Query aus und liefert ein Array für eine einzige Spalte oder den Wert der ersten Reihe.
  • sqlite_udf_decode_binary — Dekodiert Binärdaten und reicht diese als Parameter weiter zu einer benutzerdefinierten Funktion (UDF)
  • sqlite_udf_encode_binary — Kodiert Binärdaten bevor sie von einer benutzerdefinierten Funktion (UDF) zurückgegeben werden
  • sqlite_unbuffered_query — Führt eine Abfrage durch, aber übernimmt die Daten nicht gleich in das PHP
  • sqlite_valid — Gibt an, ob weitere Zeilen zur Verfügung stehen