DOP: No se puede crear la base de datos SQLite en la memoria
-
19-09-2019 - |
Pregunta
Tratando de aprender un poco acerca de DOP y está pasando por este tutorial . Tiene el siguiente fragmento de código:
<?php
try
{
$db = new PDO('sqlite::memory');
echo "SQLite created in memory.";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
Al ejecutar este me sale el siguiente mensaje de excepción:
SQLSTATE [HY000] [14] no se puede abrir archivo de base
¿Qué significa eso? ¿Cómo puedo conseguir que funcione? Soy capaz de conectarse a una base de datos MySQL y también un archivo de base de datos SQLite regular. Así que sé al menos algo funciona ...
Estoy en Windows 7 de 64 bits con Apache 2.2.11 y PHP 5.3.0 (última WampServer instalar). phpinfo()
informa que tengo pdo_sqlite con SQLite 3.6.15 Biblioteca habilitado.
Solución
Tienes que escribir
$db = new PDO('sqlite::memory:');
:
el arrastre no se encuentra.
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, añadir la ruta absoluta al prefijo DSN.
Para crear una base de datos en la memoria, añadir : memoria:. al prefijo DSN
Otros consejos
No está seguro @ permisos ganar, pero en * nix, necesidades SQLite permiso de escritura en el directorio de archivos de base de confinamiento para los archivos temporales.