(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
sqlite_popen — Apre una connessione persistente ad un database SQLite e crea il database se non esiste
$filename
[, int $mode
= 0666
[, string &$error_message
]] )Questa funzione agisce in modo identico a sqlite_open() tranne che utilizza il meccanismo delle risorse persistenti insito in PHP. Per maggiori informazioni sui parametri leggere la pagina del manuale relativa a sqlite_open().
sqlite_popen() per prima cosa verifica se esiste già un connessione
persistente per il dato
filename
. Se ne trova una, restituisce quella stessa,
altrimenti ne apre una nuova.
Il beneficio di questo approccio è che si evita il costo, in termini di performance, di dovere ri-leggere lo schema del database e degli indici ad ogni pagina servita dal server web SAPI (qualsiasi SAPI tranne CGI o CLI).
Nota: Se si utilizza la connessione persistente, ed il sottostante database viene aggiornato da un processo che gira in background (ad esempio via crontab), e questo processo ricrea il database riscrivendolo (ad esempio cancellandolo e scrivendone uno nuovo, oppure spostando la nuova versione sulla vecchia, sostituendo la versione corrente), si possono manifestare comportamenti indefiniti quando si torna ad utilizzare la connessione persistente verso il vecchio database. Per evitare questa situazione, occorre che il processo in background apra lo stesso database ed esegua gli aggiornamenti mediante transazioni.
filename
Nome del database SQLite. Se il file non esiste, SQLite tenterà di crearlo. Il PHP deve avere i permessi di scrittura sul file se si desidera inserire dei dati o modificare lo schema del database, o creare il database se non esiste.
mode
Specifica la modalità del file. E' inteso per essere utilizzato per l'apertura del file in modalità read-only. Attualmente questo parametro viene ignorato dalla libreria SQLite. Per default la modalità di apertura ha il valore ottale 0666, ed è questa l'impostazione raccomandata.
error_message
Passato per riferimento, è impostato per contenere un messaggio descrittivo di errore nel caso non si riesca ad aprire il database a causa di un errore.
Restituisce una risorsa (database handle) se ha successo, oppure FALSE
se si verifica un errore.