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.

Foi útil?

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

Documentação

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top