2010-03-11 6 views
20

Vous essayez d'en apprendre un peu plus sur le PDO et vous passez par this tutorial. Il a l'extrait de code suivant:PDO: Impossible de créer la base de données SQLite en mémoire

<?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 suivante:

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. Donc, je sais au moins quelque chose fonctionne ...

Je suis sur Windows 7 64 bits avec Apache 2.2.11 et PHP 5.3.0 (dernière installation WampServer). phpinfo() signale que j'ai pdo_sqlite avec SQLite Library 3.6.15 activé.

Répondre

41

Vous devez écrire

$db = new PDO('sqlite::memory:'); 

le : arrière manque.


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.

Documentation

+0

Incroyable ... haha. Merci: D – Svish

2

Vous n'êtes pas sûr des autorisations @ win, mais sur * nix, SQLite a besoin d'une autorisation d'écriture dans les fichiers de base de données confining dir pour les fichiers temporaires.

+0

aussi bon de savoir! – Svish

Questions connexes