PDO: Impossible de créer la base de données SQLite en mémoire
-
19-09-2019 - |
Question
Essayer d'apprendre un peu plus sur AOP 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();
}
Quand je lance ce que je reçois le message d'exception suivant:
SQLSTATE [HY000] [14] ne peut pas ouvrir le fichier de base de données
Qu'est-ce que cela signifie? Comment puis-je obtenir pour travailler? Je suis en mesure de se connecter à une base de données MySQL et aussi un fichier régulier de base de données SQLite. Donc, je sais au moins quelque chose fonctionne ...
Je suis sous Windows 7 64 bits avec Apache 2.2.11 et PHP 5.3.0 (dernière WampServer install). phpinfo()
rapports que j'ai pdo_sqlite avec SQLite Bibliothèque 3.6.15 activée.
La solution
Vous devez écrire
$db = new PDO('sqlite::memory:');
le :
de fuite est manquante.
Le nom de la source de données PDO_SQLITE (DSN) se compose 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, ajouter : mémoire:. au préfixe DSN
Autres conseils
Je ne sais pas @ autorisations de gagner, mais sur * nix, les besoins SQLite écrire la permission aux fichiers de base de données de confinement dir pour les fichiers temporaires.