PDO: невозможно создать базу данных SQLite в памяти - PullRequest
25 голосов
/ 11 марта 2010

Попытка немного узнать о PDO и прохождение этого урока . Имеет следующий фрагмент кода:

<?php

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

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

Когда я запускаю это, я получаю следующее сообщение об исключении:

SQLSTATE [HY000] [14] не удалось открыть файл базы данных

Что это значит? Как я могу заставить его работать? Я могу подключиться к базе данных MySQL, а также обычный файл базы данных SQLite. Так что я знаю, что хоть что-то работает ...

Я нахожусь на 64-битной Windows 7 с Apache 2.2.11 и PHP 5.3.0 (последняя версия WampServer ). phpinfo() сообщает, что у меня есть pdo_sqlite с включенной библиотекой SQLite 3.6.15.

Ответы [ 2 ]

49 голосов
/ 11 марта 2010

Вы должны написать

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

трейлинг : отсутствует.


Имя источника данных PDO_SQLITE (DSN) состоит из следующих элементов:

Префикс DSN: sqlite: .

  • Чтобы получить доступ к базе данных на диске, добавьте абсолютный путь к префиксу DSN.

  • Чтобы создать базу данных в памяти, добавьте : memory: к префиксу DSN.

Документация

2 голосов
/ 11 марта 2010

Не уверен, разрешения @ win, но в * nix SQLite требуется разрешение на запись в файлы базы данных dir, ограничивающие временные файлы.

...