ПДО:Невозможно создать базу данных SQLite в памяти.
-
19-09-2019 - |
Вопрос
Пытаюсь немного узнать о 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 (последняя версия). Вампсервер установить). phpinfo()
сообщает, что у меня есть pdo_sqlite с включенной библиотекой SQLite 3.6.15.
Решение
Вы должны написать
$db = new PDO('sqlite::memory:');
конечный :
пропал, отсутствует.
Имя источника данных PDO_SQLITE (DSN) состоит из следующих элементов:
Префикс DSN Склайт:.
Чтобы получить доступ к базе данных на диске, добавьте абсолютный путь к префиксу DSN.
Чтобы создать базу данных в памяти, добавьте :Память: к префиксу DSN.
Другие советы
Не уверен в разрешениях @win, но в *nix SQLite требуется разрешение на запись в каталог, ограничивающий файлы базы данных для временных файлов.