2010-03-11 26 views
20

Intentando aprender un poco sobre PDO y está pasando por this tutorial. Tiene el siguiente fragmento de código:PDO: no se puede crear la base de datos SQLite en la memoria

<?php 

try 
{ 
    $db = new PDO('sqlite::memory'); 
    echo "SQLite created in memory."; 

} 
catch(PDOException $e) 
{ 
    echo $e->getMessage(); 
} 

Cuando ejecuto esto me sale el siguiente mensaje de excepción:

SQLSTATE [HY000] [14] no se puede abrir el archivo de base de datos

Qué significa eso? ¿Cómo puedo hacer que funcione? Puedo conectarme a una base de datos MySQL y también a un archivo de base de datos SQLite regular. Así que sé que al menos algo está funcionando ...

Estoy en Windows 7 de 64 bits con Apache 2.2.11 y PHP 5.3.0 (instalación más reciente de WampServer). phpinfo() informa que tengo pdo_sqlite con SQLite Library 3.6.15 habilitada.

Respuesta

41

usted tiene que escribir

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

la : arrastrando falta.


El nombre de origen de datos pdo_sqlite (DSN) se compone de los siguientes elementos:

El prefijo DSN es sqlite:.

  • Para acceder a una base de datos en el disco, anexe la ruta absoluta al prefijo DSN.

  • Para crear una base de datos en la memoria, añadir : Memoria: al prefijo DSN.

Documentation

+0

Imposible ... jaja. Gracias: D – Svish

2

No estoy seguro de los permisos de @ win, pero en * nix, SQLite necesita permisos de escritura para los archivos de la base de datos dir limit para los archivos temporales.

+0

También es bueno saber! – Svish

Cuestiones relacionadas