在内存中创建 SQLite 数据库

2022-08-30 15:13:55

试图学习一些关于PDO的知识,并正在学习本教程。它具有以下代码片段:

<?php

  try
  {
    $db = new PDO('sqlite::memory');
    echo "SQLite created in memory.";
  }
  catch(PDOException $e)
  {
    echo $e->getMessage();
  }

当我运行此命令时,我收到以下异常消息:

SQLSTATE[HY000] [14] 無法打開資料庫檔案

那是什么意思?我怎样才能让它工作?我能够连接到MySQL数据库和常规SQLite数据库文件。所以我知道至少有些东西在起作用...

我使用的是Windows 7 64位,带有Apache 2.2.11和PHP 5.3.0(最新的WampServer安装)。 报告我已pdo_sqlite启用了 SQLite 库 3.6.15。phpinfo()


答案 1

你必须写

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

尾随丢失。:


PDO_SQLITE数据源名称 (DSN) 由以下元素组成:

DSN 前缀是 sqlite:

  • 要访问磁盘上的数据库,请将绝对路径追加到 DSN 前缀。

  • 要在内存中创建数据库,请将 :memory: 追加到 DSN 前缀。

文档


答案 2

不确定 @ win 权限,但在 *nix 上,SQLite 需要写入 dir 限制临时文件的数据库文件。


推荐