DOP: Não é possível criar banco de dados SQLite na memória
-
19-09-2019 - |
Pergunta
Tentando aprender um pouco sobre DOP e está passando por este tutorial . Tem o seguinte trecho de código:
<?php
try
{
$db = new PDO('sqlite::memory');
echo "SQLite created in memory.";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
Quando eu executar este eu recebo a seguinte mensagem de exceção:
SQLSTATE [HY000] [14] incapaz de arquivo de banco de dados open
O que isso significa? Como posso fazê-lo funcionar? Eu sou capaz de se conectar a um banco de dados MySQL e também um arquivo de banco de dados SQLite regular. Então eu sei que pelo menos alguma coisa está funcionando ...
Eu estou no Windows 7 64-bit com Apache 2.2.11 e PHP 5.3.0 (última WampServer instalar). relatórios phpinfo()
que eu tenho pdo_sqlite com SQLite Biblioteca 3.6.15 habilitado.
Solução
Você tem que escrever
$db = new PDO('sqlite::memory:');
o :
à direita está em falta.
O nome da fonte de dados pdo_sqlite (DSN) é composta pelos seguintes elementos:
O DSN prefixo é sqlite:.
Para acessar um banco de dados no disco, anexe o caminho absoluto para o prefixo DSN.
Para criar um banco de dados na memória, anexar : memória:. para o prefixo DSN
Outras dicas
Não tenho certeza @ ganhar permissões, mas em * nix, SQLite precisa de permissão de escrita para a dir confinando arquivos de banco de dados para arquivos temporários.