In memory sqlite has some limitations. The memory space could be the request, the session, but no way seems documented to share a base in memory among users.
For a request, open your base with the code
$pdo = new PDO( 'sqlite::memory:');
and your base will disapear on next request.
For session persistency
<?php
$pdo = new PDO(
'sqlite::memory:',
null,
null,
array(PDO::ATTR_PERSISTENT => true)
);
?>
PDO_SQLITE DSN
(PECL PDO_SQLITE >= 0.2.0)
PDO_SQLITE DSN — Connexion aux bases de données SQLite
Description
Le Data Source Name (DSN) de PDO_SQLITE est composé des éléments suivants :
- Préfixe DSN (SQLite 3)
-
Le préfixe DSN est
sqlite:.-
Pour accéder à une base de données sur le disque, ajoutez le chemin absolu au préfixe DSN.
-
Pour créer une base de données en mémoire, ajouter :memory: au préfixe DSN.
-
- Préfixe DSN (SQLite 2)
-
L'extension SQLite dans PHP 5.1 fournit un pilote PDO qui supporte l'accès et la création de bases de données pour SQLite 2. Ceci vous permet d'accéder aux bases de données que vous avez créées avec l'extension SQLite dans une version antérieure de PHP.
Note:
Le pilote sqlite2 n'est disponible que dans PHP 5.1.x si vous avez activé PDO et ext/sqlite. Il n'est actuellement pas disponible à partir de PECL.
Le préfixe DSN pour se connecter aux bases de données SQLite 2 est
sqlite2:.-
Pour accéder à une base de données sur le disque, ajoutez le chemin absolu au préfixe DSN.
-
Pour créer une base de données en mémoire, ajouter :memory: au préfixe DSN.
-
Exemples
Exemple #1 Exemples avec PDO_SQLITE DSN
Les exemples suivant montrent PDO_SQLITE DSN pour se connecter aux bases de données SQLite :
sqlite:/opt/databases/mydb.sq3 sqlite::memory: sqlite2:/opt/databases/mydb.sq2 sqlite2::memory:
@ Fatmoon
That is correct. SQLite sometimes uses additional files in the same folder while writing to the DB. These files can sometimes be seen and usually contain the name of your DB and the word 'journal' in their filename.
Security wise, it might be a good idea to store the SQLite databases in a seperate folder to shield the rest from user www.
It seems that the directory that contains your sqlite database must be writeable by the web server. Making just the file writeable won't work.
Don't forget "extension=php_pdo_sqlite.dll" has to be enabled in php.ini (if you use xampp is will be disabled by default) .
