Create SQLite database in memory
Solution 1
You have to write
$db = new PDO('sqlite::memory:');
the trailing :
is missing.
The PDO_SQLITE Data Source Name (DSN) is composed of the following elements:
The DSN prefix is sqlite:.
To access a database on disk, append the absolute path to the DSN prefix.
To create a database in memory, append :memory: to the DSN prefix.
Solution 2
Not sure @ win permissions, but on *nix, SQLite needs write permision to the dir confining database files for temp files.
Lemon
Software Developer, Geek, HSP, SDA, ..., open, honest, careful, perfectionist, ... Currently into indoor rowing and rock climbing, just to mention something non-computer-related... Not the best at bragging about myself... so... not sure what more to write... 🤔
Updated on July 02, 2022Comments
-
Lemon almost 2 years
Trying to learn a bit about PDO and is going through this tutorial. It has the following snippet of code:
<?php try { $db = new PDO('sqlite::memory'); echo "SQLite created in memory."; } catch(PDOException $e) { echo $e->getMessage(); }
When I run this I get the following exception message:
SQLSTATE[HY000] [14] unable to open database file
What does that mean? How can I get it to work? I am able to connect to a MySQL database and also a regular SQLite database file. So I know at least something is working...
I'm on Windows 7 64-bit with Apache 2.2.11 and PHP 5.3.0 (latest WampServer install).
phpinfo()
reports that I have pdo_sqlite with SQLite Library 3.6.15 enabled.