CIII. SQLite

Introduzione

Questo è un modulo per l'uso di SQLite Embeddable SQL Database Engine. SQLite è una libreria C che implementa al proprio interno un motore per database SQL. I programmi che compilano al proprio interno la libreria SQLite possono accedere ad un database senza dovere eseguire un processo RDBMS separato.

SQLite non è una libreria client che si deve collegare ad un qualche grosso server database. SQLite è il server. La libreria SQLite legge e scrive direttamente sul file del database.

Nota: Per maggiori informazioni vedere il sito web di SQLite (http://sqlite.org/).

Installazione

Leggere il file INSTALL allegato al pacchetto. Oppure utilizzare l'installatore PEAR con i parametri "pear install sqlite". La libreria SQLite è già inclusa. Non occorre installare altro software.

Gli utenti di Windows possono scaricare la versione DLL del module SQLite da qui: (php_sqlite.dll).

Da PHP 5, il modulo SQLite e il motore stesso saranno inclusi per default.

Requisiti

Per potere utilizzare questa funzioni, occorre compilare il PHP con il supporto per SQLite, oppure caricare dinamicamente il modulo da php.ini.

Tipi di risorse

SQLite utilizza due risorse. La prima è la connessione con il database, la seconda è il set di risultati.

Costanti predefinite

Le funzioni sqlite_fetch_array() e sqlite_current() utilizzano costanti per indicare i differenti tipi di matrici da restituire. Tali costanti sono:

Tabella 1. Costanti di SQLiteper scaricare le righe

costantesignificato
SQLITE_ASSOC Le colonne sono restituite in una matrice il cui indice è il nome del campo.
SQLITE_BOTH Le colonne sono restituite in una matrice il cui indice è costituito sia dal nome del campo sia numero della posizione di questo nella riga.
SQLITE_NUM Le colonne sono restituite in una matrice il cui indice è costituito dalla posizione del campo nella riga. La prima colonna parte da 0.

Configurazione di Runtime

Il comportamento di queste funzioni è influenzato dalle impostazioni di php.ini.

Tabella 2. Parametri di configurazione di SQLite

NomeDefaultModificabile
sqlite.assoc_case0PHP_INI_ALL
Per maggiori dettagli e definizioni delle costanti PHP_INI_* vedere ini_set().

Breve descrizione dei parametri di configurazione.

sqlite.assoc_case int

Indica se utilizzare indici misti (0), solo maiuscole (1) oppure solo minuscoli (2).

Questa opzione è utile quando si ha necessità di avere compatibilità con altri database, nei quali i nomi delle colonne sono sempre restituiti o maiuscoli o minuscoli, a prescindere dalla definizione del campo nello schema del database.

La libreria SQLite restituisce i nomi delle colonne così come sono definiti (ovvero rispettando le maiuscole o le minuscole indicate nello schema). Quando si imposta sqlite.assoc_case a 0 si rispetta la definizione. Quando si imposta il parametro a 1 oppure a 2, il PHP converte i nomi rispettivamente in maiuscolo o minuscolo.

L'utilizzo di questa opzione comporta una lieve penalità nelle performance, ma è molto più veloce che convertire i nomi dallo script PHP.

Sommario
sqlite_array_query -- Esegue una query in un dato database e restituisce una matrice.
sqlite_busy_timeout -- Imposta il timeout di 'in uso', o disabilita l'handle di 'in uso'.
sqlite_changes --  Restituisce il numero di righe modificate dall'ultima istruzione SQL.
sqlite_close -- Chiude un database SQLITE.
sqlite_column -- Scarica una riga dal set di risultati corrente.
sqlite_create_aggregate -- Registra un aggregato UDF da utilizzare nelle istruzioni SQL.
sqlite_create_function --  Registra una funzione utente "regolare" da utilizzare nelle istruzioni SQL.
sqlite_current -- Scarica la riga corrente di un set di risultati in una matrice.
sqlite_error_string -- Restituisce la descrizione testuale di un codice di errore.
sqlite_escape_string -- Inserisce il carattere di escape in stringa da usarsi in una query.
sqlite_exec --  Executes a result-less query against a given database.
sqlite_factory --  Opens a SQLite database and creates an object for it
sqlite_fetch_all --  Fetches all rows from a result set as an array of arrays
sqlite_fetch_array -- Scarica com matrice la riga successiva da un set di risultati.
sqlite_fetch_column_types --  Return an array of column types from a particular table.
sqlite_fetch_object --  Fetches the next row from a result set as an object
sqlite_fetch_single -- Scarica come stringa la prima colonna di un set di risultati.
sqlite_fetch_string -- Alias di sqlite_fetch_single()
sqlite_field_name -- Restituisce il nome di un particolare campo.
sqlite_has_more -- restituisce se sono disponibili o meno ulteriori righe.
sqlite_last_error -- Restituisce il codice di errore dell'ultimo errore accorso sul database.
sqlite_last_insert_rowid -- Restituisce l'identificativo di riga dell'ultima riga inserita.
sqlite_libencoding -- Restituisce la codifica della libreria SQLite.
sqlite_libversion -- Restituisce la versione della libreria SQLite.
sqlite_next -- Si sposta al successivo numero di riga.
sqlite_num_fields -- Resituitsce il numero di campi da un set di risultati.
sqlite_num_rows -- Restituisce il numero di righe da un set di risultati bufferizzato.
sqlite_open -- Apre un database SQLite. Crea il database se non esiste.
sqlite_popen --  Apre una connessione persistente ad un database SQLite. Crea il database se non esiste.
sqlite_query --  Esegue una query su un database e restituisce un puntatore al set di risultati.
sqlite_rewind -- Posiziona sulla prima riga.
sqlite_seek -- Posizionamento su una data riga di un set di risultati bufferizzato.
sqlite_single_query --  Executes a query and returns either an array for one single column or the value of the first row
sqlite_udf_decode_binary -- Decodifica dati binari passati come parametri in UDF.
sqlite_udf_encode_binary -- Codifica i dati binari prima di restituirli da un UDF.
sqlite_unbuffered_query -- Esegue una query senza scaricare e bufferizzare i dati