Buon Natale a tutti anche se con un po di ritardo, allora ho deciso di scrivere questa pillola per fare un piccolo regalo a tutti quelli che come me stanno cercando documenti sul SQLite, spero che cio che sto per scrivere possa essere di aiuto.
SQLite è nello stesso tempo due cose: un database e una libreria di accesso che implementa gran parte dei comandi dello standard SQL 92. I dati vengono salvati in un unico file, come in Microsoft Access inoltre SQLite è estremamente veloce. Per quanto riguarda PHP 5 SQLite gia è integrato invece per PHP 4 c'è bisogno della libreria che è possibile scaricare, inserire nella cartella "extensions" e settare php.ini.
SQLite mette a nostra disposizione due interfacce, una di tipo procedurale ed un altra OO. In SQLite si nota la mancanza di tipi di dati. Infatti fa solo distinzioni tra tipi string e integer.
Un esempio OO:
Ora bisogna analizzare il codice per capire SQLite.codice:<?php $db=new SQLiteDatabase("database.sqlite"); $db->query("begin; create table nomi (id integer primary key, nome varchar(255)); insert into nomi (nome) values ('uno'); insert into nomi (nome) values ('due'); insert into nomi (nome) values ('tre'); commit;"); $risultato=$db->query("select * from nomi"); while($risultato->valid()) { // restituisce true se non siamo alla fine del set di dati $dati=$risultato->current(); print_r($dati); print(" "); $risultato->next(); } $db->close(); unset($db); ?>
1) abbiamo fatto uso di una transazione
2) non abbiamo definito il tipo di dato per id pero lo abbiamo fatto per nome, provate a non definire il tipo di dato per nome, quindi "create table nomi (id integer primary key, nome)" praticamente è la stessa cosa di quella di prima.
3) definendo il campo id con "integer primary key" lo rendiamo autoincrementate automaticamente.
Un esempio procedurale:
In SQLite ci sono molti modi per estrarre i dati dal database. Inoltre le funzioni si dividono in "funzioni buffered" e funzioni "unbuffered".codice:<?php $db=sqlite_open("database.sqlite"); sqlite_query($db,"begin; create table nomi (id integer primary key, nome)); insert into nomi (nome) values ('uno'); insert into nomi (nome) values ('due'); commit;"); $risultato=sqlite_query($db,"select * from nomi"); while($contenuto=sqlite_fetch_array($risultato)) { print_r($contenuto); print(" "); }; sqlite_close($db); unset($db); ?>
Le funzioni buffered vengono chiamate cosi perche fanno uso del buffer.
Il buffer è un area di memoria utilizzata come deposito temporaneo dei dati che sono in attesa di essere elaborati dal computer o da una periferica come la stampante. Un esempio significativo della funzione del buffer si ha nell'utilizzo del modem. Generalmente i dati arrivano al computer senza soluzione di continuità indipendentemente dagli altri compiti che esso deve svolgere: aprire e chiudere le finestre, far girare i programmi, rispondere alle richieste dell'utente. In questa fase non può elaborare i dati ricevuti dall'esterno. Il compito del buffer è, allora, quello di memorizzare temporaneamente i dati passandoli al processore solo nel momento in cui vengono richiesti. Se il buffer è troppo piccolo e non è in grado di trattenere tutti i dati che si accodano, alcuni di essi andranno persi e dovranno essere rispediti a scapito della velocità e della qualità della connessione.
Esempio di uso delle funzioni buffered:
Esempio di uso delle funzioni unbuffered:codice:<?php $db=sqlite_open("gb.sqlite"); $ris=sqlite_array_query($db,"select * from gb",SQLITE_ASSOC); print_r($ris); sqlite_close($db); ?>
Ci sono numerose funzione che potete trovare su PHP.it o su SQLite.org.codice:<?php $db=sqlite_open("gb.sqlite"); $query=sqlite_unbuffered_query($db,"select * from gb"); print($query); print(" "); foreach($query as $r) { print_r($r); print(" "); }; sqlite_close($db); unset($db); ?>

Rispondi quotando