downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

sqlite_popen> <sqlite_num_rows
Last updated: Fri, 14 Aug 2009

view this page in

sqlite_open

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_openOuvre une base SQLite et la crée si elle n'existe pas

Description

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

Style orienté objet (constructeur)

SQLiteDatabase
__construct ( string $filename [, int $mode= 0666 [, string &$error_message ]] )

Ouvre une base de données SQLite ou crée la base de données si elle n'existe pas.

Liste de paramètres

filename

Le nom du fichier de la base de données SQLite. Si le fichier n'existe pas, SQLite tentera de le créer. PHP doit avoir les permissions d'écriture du fichier si des données y sont insérées, le schéma de la base de données est modifié ou pour créer une base de données si elle n'existe pas.

mode

Le mode du fichier. Devrait être utilisé pour ouvrir une base de données en mode lecture seule. Actuellement, ce paramètre est ignoré par la bibliothèque sqlite. La valeur par défaut pour le mode est 0666 en octal et cela est la valeur recommandée.

error_message

Passée par référence et est affectée afin de contenir la description du message d'erreur qui explique pourquoi la base de données ne pouvait pas être ouverte s'il y avait une erreur.

Valeurs de retour

Retourne une ressource (de base de données) en cas de succès, FALSE en cas d'erreur.

Exemples

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);
}
?>

Notes

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_num_rows
Last updated: Fri, 14 Aug 2009
 
add a note add a note User Contributed Notes
sqlite_open
simplersolution at gmail dot com
07-Dec-2007 02:46
I found that both the file and the directory it is in have to be writeable by the web server, or an ambiguous "unable to open database file" error appears (pecl 1.0.3).  I pulled my hair out for ages before I realised that.
Phillip Berndt
02-Mar-2007 02:52
If you miss to set the permissions mentioned by ivoras Sqlite will drop an error message saying "Malformed database scheme", which is somehow misleading.

(I mentioned this as some [I did] might search php.net for this error message)
15-Nov-2006 10:45
the above example dows not! work since sqlite_query() does not accept one argument, but only 2.

so correct is:

<?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);
}
?>
ivoras at fer dot hr
26-May-2004 05:46
Since sqlite uses a journal to do updates and inserts (and creates it on the fly), you ALSO must have write permissions set for the web server to write in the same DIRECTORY as the database file.

sqlite_popen> <sqlite_num_rows
Last updated: Fri, 14 Aug 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites