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.

21
demandé sur Svish 2010-03-11 17:09:30

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.

Documentation

42
répondu whlk 2018-01-30 10:05:37

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.

2
répondu Devin Ceartas 2010-03-11 14:13:14