PDO: impossible de créer une base de données SQLite en mémoire
Essayer d'en apprendre un peu plus sur PDO et passe par ce tutoriel . Il a l'extrait de code suivant:
<?php
try
{
$db = new PDO('sqlite::memory');
echo "SQLite created in memory.";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
Lorsque je lance ceci, je reçois le message d'exception suivant:
SQLSTATE [HY000] [14] impossible d'ouvrir le fichier de base de données
Qu'est-ce que ça veut dire? Comment puis-je le faire fonctionner? Je suis capable de me connecter à une base de données MySQL et aussi à un fichier de base de données SQLite régulier. Donc, je sais au moins que quelque chose fonctionne...
Je suis sur Windows 7 64 bits avec Apache 2.2.11 et PHP 5.3.0 (dernière installation de WampServer). phpinfo()
signale que j'ai pdo_sqlite avec la bibliothèque SQLite 3.6.15 activée.
2 réponses
Vous devez écrire
$db = new PDO('sqlite::memory:');
Le Dernier :
est manquant.
Le nom de source de données PDO_SQLITE (DSN) est composé des éléments suivants:
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, ajoutez : memory: au préfixe DSN.
Pas sûr des autorisations @ win, mais sur * nix, SQLite a besoin d'une permision d'écriture dans les fichiers de base de données de limitation de répertoire pour les fichiers temporaires.