XCVII. SQLite

Introduction

Cette extension fait l'interface avec le moteur de base SQLite Embeddable SQL Database Engine. SQLite est une librairie C qui implémente un moteur de base de données SQL embarqué. Les programmes qui utilisent SQLite peuvent disposer d'un accès à une base de données SQL, sans avoir à faire tourner d'autre processus serveur.

SQLite n'est pas un logiciel client pour se connecter à un grand nom des bases de données. SQLite est le serveur. La librairie SQLite lit et écrit directement dans les fichiers de bases de données sur le disque.

Note : Pour plus d'informations sur SQLite, voyez le site web http://sqlite.org/.

Installation

Lisez le fichier d'installation, qui est fourni avec la distribution. Ou bien, utilisez simplement l'installeur PEAR : pear install sqlite. SQLite est déjà fourni avec PHP et vous n'avez pas besoin de télécharger d'autres logiciels.

Les utilisateurs Windows peuvent télécharger la version DLL de l'extension SQLite ici : php_sqlite.dll.

Contacts

Toutes les questions concernant cette extension doivent être envoyées aux listes de diffusion PHP, en anglais.

Pré-requis

Afin de faire disposer de ces fonctions, vous devez compiler PHP avec le support SQLite, ou charger dynamiquement l'extension SQLite depuis votre fichier php.ini.

Types de ressources

Il y a deux ressources, utilisées par l'extension SQLite. La première est une connexion à la base et la seconde est un résultat de requête.

Constantes prédéfinies

Les fonctions sqlite_fetch_array() et sqlite_current() utilisent des constantes pour spécifier les différents types de résultats. Les contantes sont les suivantes :

Tableau 1. Constantes SQLite

ConstanteSignification
SQLITE_ASSOC Les colonnes sont retournées dans le tableau, en utilisant le nom de la colonne comme nom d'index.
SQLITE_BOTH Les colonnes sont retournées dans le tableau, en utilisant simultanément le nom de la colonne comme nom d'index et un index numérique.
SQLITE_NUM Les colonnes sont retournées dans le tableau, en utilisant une indexation numérique. L'index commence à 0, pour identifier le premier champ.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 2. Options de configuration SQLite

NomPar défautModifiable
sqlite.assoc_case0PHP_INI_ALL
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à ini_set().

Voici un éclaircissement sur l'utilisation des directives de configuration.

sqlite.assoc_case int

Utilise des index à casse libre (0), majuscule (1) ou minuscule (2).

Cette option sert principalement lorsque vous avez besoin de la compatibilité avec d'autres systèmes de bases de données, où les noms des colonnes sont toujours retournés en majuscule ou en minuscule, indépendamment de la casse réelle de la colonne dans la base.

La librairie SQLite retourne le nom de la colonne sans y toucher (c'est la casse qui sera utilisée dans votre base). Lorsque sqlite.assoc_case vaut 0 cette casse sera conservée. Lorsque cette option vaut 1 ou 2, PHP va modifier la casse des noms, et mettre le nom de la colonne en majuscules ou minuscules, respectivement.

Utiliser cette option implique une légère perte de performances, mais c'est BEAUCOUP plus rapide que de faire la gestion des caractères vous-même.

Table des matières
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 agregeante 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_fetch_array -- Lit la prochaine ligne de résultat SQLite dans un tableau
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 si il reste des lignes SQLite à lire
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 librairie SQLite
sqlite_libversion -- Retourne la version de la librairie 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
sqlite_popen -- Ouvre une connexion SQlite persistante
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_udf_decode_binary -- Décode des données binaires, passées à une UDF SQLite
sqlite_udf_encode_binary -- Encode les données binaires avant de les retourner d'une UDF SQLite
sqlite_unbuffered_query -- Exécute une requête SQLite non bufferisée