ПДО:Невозможно создать базу данных SQLite в памяти.

StackOverflow https://stackoverflow.com/questions/2425531

Вопрос

Пытаюсь немного узнать о 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 требуется разрешение на запись в каталог, ограничивающий файлы базы данных для временных файлов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top