As of July 2010, there are two ways to use SQLite from PHP:
- procedural: sqlite (=sqlite2), sqlite3
- object-oriented: SQLite3, PDO
SQLite
- Introduction
- Installation/Configuration
- Constantes pré-définies
- Fonctions SQLite
- sqlite_array_query — Exécute une requête SQL avec SQLite et retourne un tableau
- sqlite_busy_timeout — Configure le délai d'attente d'une base SQLite occupée
- sqlite_changes — Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite
- sqlite_close — Ferme la connexion à SQLite
- sqlite_column — Lit la valeur d'une colonne dans un résultat SQLite
- sqlite_create_aggregate — Enregistre une UDF agrégeante pour les requêtes SQLite
- sqlite_create_function — Enregistre une fonction utilisateur "classique" UDF pour SQLite
- sqlite_current — Lit une ligne de résultat SQLite dans un tableau
- sqlite_error_string — Retourne le message d'erreur SQLite
- sqlite_escape_string — Protège une chaîne de caractères pour utilisation avec SQLite
- sqlite_exec — Exécute une requête sans résultats sur une base de données
- sqlite_factory — Ouvre une base SQLite et crée un objet pour elle
- sqlite_fetch_all — Retourne toutes les lignes d'un jeu de résultats en tant que tableau de tableaux
- sqlite_fetch_array — Lit la prochaine ligne de résultat SQLite dans un tableau
- sqlite_fetch_column_types — Retourne un tableau des types de colonnes d'une certaine table
- sqlite_fetch_object — Retourne la ligne suivante du jeu de résultats en tant qu'objet
- sqlite_fetch_single — Lit la première ligne d'un résultat SQLite sous forme de chaîne
- sqlite_fetch_string — Alias de sqlite_fetch_single
- sqlite_field_name — Retourne le nom du champ SQLite
- sqlite_has_more — Indique s'il reste des lignes SQLite à lire
- sqlite_has_prev — Retourne si oui ou non une ligne précédente est disponible
- sqlite_key — Retourne l'index de la ligne courante
- sqlite_last_error — Retourne le dernier code d'erreur SQLite
- sqlite_last_insert_rowid — Retourne le numéro de ligne de la dernière ligne insérée
- sqlite_libencoding — Retourne l'encodage utilisé par la bibliothèque SQLite
- sqlite_libversion — Retourne la version de la bibliothèque SQLite
- sqlite_next — Déplace le pointeur SQLite vers la prochaine ligne
- sqlite_num_fields — Retourne le nombre de champs dans un résultat SQLite
- sqlite_num_rows — Retourne le nombre de lignes d'un résultat SQLite
- sqlite_open — Ouvre une base SQLite et la crée si elle n'existe pas
- sqlite_popen — Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas
- sqlite_prev — Se positionne sur le numéro de ligne précédent du jeu de résultats
- sqlite_query — Exécute une requête SQLite et lit le résultat
- sqlite_rewind — Place le pointeur de résultat SQLite au début
- sqlite_seek — Déplace le pointeur de résultat SQLite vers une ligne
- sqlite_single_query — Exécute une requête et retourne soit un tableau pour une colonne unique, soit la valeur de la première ligne
- sqlite_udf_decode_binary — Décode des données binaires, passées à une UDF SQLite
- sqlite_udf_encode_binary — Encode les données binaires d'une UDF SQLite avant de les retourner
- sqlite_unbuffered_query — Exécute une requête SQLite non bufferisée
- sqlite_valid — Retourne si oui ou non il reste des lignes disponibles
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.
