SQLite: mini-guida all’uso

20 marzo 2006

Nell’articolo Php e SQLite, una piccola grande novità abbiamo presentato SQLite, un database open source relativamente dotato di caratteristiche molto interessanti, tanto che ad esempio sarà supportata in modo nativo da PHP5 oltre a diventare il principale strumento di persistenza dei dati su piattaforma Android.

Nell’articolo precedente ci siamo già occupati dell’interazione con PHP 4 e di definire le principali differenze rispetto ad un RDBMS (Relational Database Management System) come MySQL o PostgreSQL, quindi è giunto il momento di esaminare un po’ più dettagliatamente funzionalità e particolarità di questo database.

PHP ci fornice una serie di funzioni che non risulteranno del tutto nuove a chi ha un po’ di dimestichezza con l’API per MySQL, pertanto nei paragrafi successivi prenderemo in considerazione soltanto quelle che potrebbero indurre qualche perplessità.

Il database

SQLite non è un server e che un database SQLite è costituito da un file binario accessibile direttamente, quindi risulta influenzato dalle restrizioni imposte dai Chmod e da configurazioni legate a Php come il Safe Mode e configurazioni sicure.

L’accesso diretto ad un database SQLite non richiede username e password, mentre l’accesso remoto (http:// o ftp://), a differenza di quanto avviene nel caso dei file DBM, non è supportato dall’API Php: in entrambi i casi non si tratta di vere e proprie limitazioni, infatti stiamo parlando di un database engine pensato per essere utilizzato sulla stessa macchina in cui opera Php.

sqlite_open()

sqlite_open() consente di creare un database o di aprirlo se già esiste,

resource sqlite_open ( string filename [, int mode [, string &error_message]])

Il primo argomento, il file, è l’unico obbligatorio: per evitare effetti imprevedibili è preferibile utilizzare un percorso fisico assoluto (facilmente ricostruibile con funzioni come getcwd() e realpath()).

Al posto di un file presente sull’hard disk possiamo anche utilizzare ":memory:" per creare un database temporaneo (con vita pari alla durata dello script) residente soltanto memoria, una caratteristica che può tornare utile per caricare/scaricare provvisoriamente dati durante alcune operazioni di manipolazione.

“mode” per ora non ha nessun ruolo se non quello di segnaposto, ma in futuro avrà il compito di definire la modalità di accesso al file.

Il terzo argomento rappresenta un contenitore per gli errori in caso di fallimento al momento dell’apertura, tuttavia non sembra funzionare come dovrebbe (specialmente in Windows), quindi al momento è consigliabile utilizzare sqlite_open() come segue.

<?php
/* [LISTATO 1]
Attiviamo il tracking degli errori:
In caso di errore soppresso con "@" troveremo il messaggio
nella variabile PHP predefinita "$php_errormsg".

Si tratta di un modo per sopperire al non funzionamento del terzo argomento di sqlite_open
*/
ini_set('track_errors', '1') ;

/* Percorso assoluto del database */
$dbFile = realpath('./').'/testDB1' ;

$dbLink=@sqlite_open($dbFile) ;

/* Se qualcosa è andato storto gestiamo l'errore e stampiamo un avviso */
if(!is_resource($dbLink)) {

	$sqliteError= "Si è verificato un errore al momento dell'apertura/creazione del database <br>\n";
	$sqliteError.= '<strong>'.$php_errormsg.'</strong>' ;
  
	$php_errormsg='' ;
  
	die($sqliteError) ;
}

//altre operazioni


/* Chiude il database */
sqlite_close($dbLink) ;
?>

Link utili

Se vuoi aggiornamenti su SQLite: mini-guida all'uso inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su SQLite: mini-guida all'uso

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy