PHP und SQLite3

Über SQLite3 informieren

Außer dem PHP-Handbuch ist die Homepage von SQLite (engl.) eine wertvolle Informationsquelle.
Homepage von SQLite: https://www.sqlite.org
SQL-Syntax: https://www.sqlite.orglang.html
C++ Interface: https://www.sqlite.org/c3ref/funclist.html
Das C++ Interface beschreibt zwar die Funktionen unter C++, die Funktionen der SQLite3-Klasse unter PHP sind aber ähnlich, und so hat man eine zusätzliche Dokumentation.

Einstellungen in der php.ini freischalten

SQLite3 ist eine Erweiterung (Extension) in PHP, und falls installiert, müsste der entsprechende Eintrag in der PHP-Konfigurationsdatei (php.ini) vorhanden sein. Gefunden habe ich diesen Eintrag:
...
extension=sqlite3
...
Die Zeile mit sqlite3 war auskommentiert, das heißt ,es stand ein Semikolon am Anfang. Das führende Semikolon habe ich entfernt und die geänderte Konfigurationsdatei gespeichert.

SQLite3 - Unterstützung wirklich vorhanden?

Das Freischalten allein würde nichts bewirken, wenn die Erweiterung nicht auch installiert ist. Das verrät uns PHP auf der Kommandozeile (Eingabeaufforderung). Der Aufruf
php -m
zeigt alle Erweiterungen mit ihren Kurznamen an; hier gekürzt dargestellt:
> php -m
[PHP Modules]
bcmath
bz2
calendar
Core
...
sqlite3
...
Wenn also sqlite3 in der Liste enthalten ist, dann ist diese Erweiterung auch vorhanden.

SQLite3 im PHP-Handbuch

Sucht man nach SQLite im Handbuch, so findet man zum einen eine SQLite-Unterstützung per PDO-Treiber sowie unsere gesuchte SQLite3-Unterstützung. Beide Erweiterungen sind wohl unabhängig voneinander, uns interessiert hier nur SQLite3.
SQLite3 ist als Klasse mit dem Namen SQLite3 beschrieben.
Schaut man sich in der Doku ein wenig um, so entdeckt man bald weitere Klassen, die zu SQLite3 gehören. Hier eine Übersicht:
  • SQLite3 - die Basisklasse zur Datenbank SQLite Version 3
  • SQLite3Stmt - die Statementklasse
  • SQLite3Result - die Ergebnisklasse
Damit ist erst einmal nur umrissen, wonach wir im Handbuch suchen müssen, um Information über die SQLite3-Unterstützung zu erhalten. Was man mit den Klassen anfangen kann, werden die Beispiele und Erklärungen in der Folge zeigen.

Arbeit mit SQLite3 möglich?

Der Kommandoaufruf
php -a
lässt den PHP-Interpreter interaktiv arbeiten. Nun kann man PHP-Anweisungen direkt eingeben, die nach Drücken der Eingabetaste ausgeführt werden.
Das nutzen wir aus, um die SQLite3-Unterstützung zu bewegen, uns ihre Version zu verraten. Dazu rufen wir die Methode version() der Klasse SQLite3 auf. Da das Ergebnis ein Array ist, können wir es mit print_r() ausgeben.
php > print_r(SQLite3::version());
Array
(
    [versionString] => 3.28.0
    [versionNumber] => 3028000
)
php >
Außer, dass wir die Version nun kennen, zeigt dieser Funktionstest, dass wir mit SQLite3 unter PHP auch wirklich arbeiten können.

Eine ganz aktuelle Referenz

Ein fortgeschrittener Programmierer wäre jetzt vielleicht an einer Übersicht über die Klassen, deren Eigenschaften und Methoden die aktuell zur Verfügung stehen interessiert.
Auch hier hilft PHP weiter, und zwar mit der Option --re.
Hinter der Option gibt man den Namen der Erweiterung an, über die man etwas wissen möchte. In unserem Fall führt der Ausdruck sqlite3 zum Ziel. Hier das vollständige Kommando:
php --re sqlite3 > Referenz-sqlite3.txt
Das Ergebnis ist wirklich sehr lang, daher habe ich es gleich in der Textdatei Referenz-sqlite3.txt festgehalten Der Dateiname ist frei gewählt.
Betrachten wir den Inhalt der Datei, dann erfahren wir, welche Klassen es gibt, welche Eigenschaften und Methoden diese beitzen, welche Parameter die Methoden brauchen und vieles andere - also eine komplette Referenz.
Da die Information direkt aus der eigenen SQLite3-Erweiterung gewonnen wird, wissen wir genau, welche Features uns tatsächlich zur Verfügung stehen.