As of July 2010, there are two ways to use SQLite from PHP:
- procedural: sqlite (=sqlite2), sqlite3
- object-oriented: SQLite3, PDO
SQLite
- Einführung
- Installation/Konfiguration
- Vordefinierte Konstanten
- SQLite Funktionen
- sqlite_array_query — Führt eine Datenbankabfrage durch und liefert das gesamte Abfrageergebnis als Liste 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 — Liefert die Anzahl der vom letzten SQL-Befehl geänderten Datenbankeinträge.
- sqlite_close — Schließt eine SQLite-Datenbankverbindung
- sqlite_column — Holt eine Spalte des aktuellen Ergebnissatzes
- sqlite_create_aggregate — Registriert eine benutzerdefinierte Funktion, um SQL-Abfragen zu aggregieren
- sqlite_create_function — Registriert 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 textuelle Beschreibung eines Fehler-Codes
- sqlite_escape_string — Bereitet einen String für die Verwendung als SQL-Parameter auf
- sqlite_exec — Führt eine ergebnislose Abfrage 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 — Liest die nächste Zeile aus dem 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 — Alias von sqlite_fetch_single
- sqlite_field_name — Gibt den Namen eines Feldes zurück
- sqlite_has_more — Findet heraus, ob noch Reihen im Ergebnis vorhanden sind
- sqlite_has_prev — Gibt zurück, ob eine vorige Reihe existiert oder nicht
- sqlite_key — Liefert den aktuellen Zeilenindex
- sqlite_last_error — Liefert den Fehlercode des letzten Fehlers einer Datenbank
- sqlite_last_insert_rowid — Liefert die Zeilenidentifikation der zuletzt eingefügten Reihe zurück
- sqlite_libencoding — Liefert die Kodierung der verwendeten SQLite-Bibliothek zurück
- sqlite_libversion — Liefert die Version der genutzten SQLite-Bibliothek
- sqlite_next — Wechselt zu der nächsten Zeilennummer
- sqlite_num_fields — Liefert die Anzahl der Felder eines Abfrageergebnisses zurück
- sqlite_num_rows — Liefert die Anzahl an Reihen eines gepufferten Abfrageergebnisses zurück
- sqlite_open — Öffnet eine SQLite-Datenbank und erzeugt die Datenbank, wenn diese nicht existiert.
- sqlite_popen — Öffnet eine persistente Verbindung zu einer SQLite-Datenbank und erzeugt diese im Bedarfsfall
- 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 — Wechselt zu einer Reihe in einem gepufferten Abfrageergebnis
- 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 aus, aber übernimmt die Daten nicht gleich ins PHP
- sqlite_valid — Gibt an, ob weitere Zeilen zur Verfügung stehen
Anonymous ¶
2 years ago
nosdudefr at gmail dot com ¶
2 years ago
Regarding the table creation you can optimize this code a bit by using the built in " CREATE TABLE IF NOT EXISTS <tablename>". This will let the table creation decision to the sqlite engine.
Then, if i may, your code could be something like :
<?php
if ($db = new SQLiteDatabase('filename')) {
// first let the engine check table, and create it eventualy
$q = @$db->query('CREATE TABLE IF NOT EXISTS tablename (id int, requests int, PRIMARY KEY (id))';
//the rest of the code, according error checks etc
// ...
?>
For more "tweaks" feel free to look at sqlite language ref : http://www.sqlite.org/lang_createtable.html
Have fun with this powerfull&simple engine :)
Andrew Paul Dickey ¶
4 years ago
If you intend to implement 2.x releases of SQLite with your development you are in the right place, as this library is suitable for use with your application (reference http://us.php.net/manual/en/book.sqlite.php).
If you intend to use SQLite 3.x releases of SQLite with your development please refer to the section on PHP Data Objects, and specifically the PDO-SQLite implementation available at(references: http://us.php.net/manual/en/book.pdo.php , http://au2.php.net/manual/en/ref.pdo-sqlite.php).
It is my hope that this post will save both new users and experienced developers time during their initial or a new implementation of PHP & SQLite by encouraging them to use the appropriate libraries.
saivert at saivert dot com ¶
5 years ago
How to open a database, create a table if it doesn't exist and inserting initial value.
<?php
if ($db = new SQLiteDatabase('filename')) {
$q = @$db->query('SELECT requests FROM tablename WHERE id = 1');
if ($q === false) {
$db->queryExec('CREATE TABLE tablename (id int, requests int, PRIMARY KEY (id)); INSERT INTO tablename VALUES (1,1)');
$hits = 1;
} else {
$result = $q->fetchSingle();
$hits = $result+1;
}
$db->queryExec("UPDATE tablename SET requests = '$hits' WHERE id = 1");
} else {
die($err);
}
?>
Use this as boilerplate code for any new project using SQLite.
