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:
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);
?>
Ora bisogna analizzare il codice per capire SQLite.
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:
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);
?>
In SQLite ci sono molti modi per estrarre i dati dal database. Inoltre le funzioni si dividono in "funzioni buffered" e funzioni "unbuffered".
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:
codice:
<?php
$db=sqlite_open("gb.sqlite");
$ris=sqlite_array_query($db,"select * from gb",SQLITE_ASSOC);
print_r($ris);
sqlite_close($db);
?>
Esempio di uso delle funzioni unbuffered:
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);
?>
Ci sono numerose funzione che potete trovare su PHP.it o su SQLite.org.