sqlite_open

(PHP 5)

sqlite_open -- Ouvre une base SQLite et la crée si elle n'existe pas

Description

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

Style orienté objet (constructeur) :

class SQLiteDatabase {

__construct ( string filename [, int mode [, string &error_message]] )

}

sqlite_open() retourne une ressource de connexion SQLite, ou FALSE en cas d'erreur.

Le paramètre filename est le nom de la base. Cela peut être un nom relatif ou absolu, que SQLite va utiliser pour stocker vos données. Si le fichier n'existe pas, SQLite va tenter de le créer. Vous DEVEZ avoir les droits d'écriture si vous voulez faire des insertions de données, ou modifier votre schéma de base.

Le paramètre mode spécifie le mode d'ouverture du fichier, et il permet notamment d'ouvrir la base en mode lecture seule. Actuellement, ce paramètre est ignoré par la bibliothèque SQLite. La valeur par défaut pour ce paramètre est la valeur octale 0666. C'est la valeur recommandée si vous avez besoin d'utiliser le paramètre errmessage.

errmessage est passé par référence, et il contient un message d'erreur descriptif, expliquant pourquoi la base n'a pu être ouverte.

Exemple 1. Exemple avec sqlite_open()

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
  
sqlite_query($db,'CREATE TABLE foo (bar varchar(10))');
  
sqlite_query($db,"INSERT INTO foo VALUES ('fnord')");
  
$result = sqlite_query($db,'select bar from foo');
  
var_dump(sqlite_fetch_array($result));
} else {
  die (
$sqliteerror);
}
?>

Astuce : Sur les plates-formes Unix, SQLite est sensible aux scripts qui utilisent la fonction système fork(). Si vous avez un tel script, il est recommandé que vous refermiez la ressource avant de faire le fork, et de l'ouvrir à nouveau dans le processus fils. Pour plus d'informations sur ce problème, voyez The C language interface to the SQLite library dans la section intitulée Multi-Threading And SQLite (en anglais).

Astuce : Il n'est pas recommandé d'utiliser des bases de données SQLite montées sur des partitions NFS. Comme NFS est très mauvais pour assurer le verrouillage des fichiers, vous pourriez ne pas ouvrir les bases, et si vous réussissez, le verrouillage de la base sera indéfini.

Note : Depuis SQLite version 2.8.2, vous pouvez spécifier :memory: comme valeur de filename pour créer une base qui sera installée en mémoire vive, sur le serveur. C'est très pratique pour des traitements temporaires, car la base en mémoire sera détruire dès que le script sera terminé. Cela peut aussi être utile, lorsqu'utilisé conjointement avec la commande SQL ATTACH DATABASE, pour charger d'autres bases, et faire des requêtes liées.

Note : SQLite prend en compte le safe mode et l'option open_basedir.

Voir aussi sqlite_popen(), sqlite_factory(), sqlite_close() et sqlite_query().