28

尝试了解 PDO 并正在阅读本教程。它有以下代码片段:

<?php

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

当我运行它时,我收到以下异常消息:

SQLSTATE[HY000] [14] 无法打开数据库文件

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

我在带有 Apache 2.2.11 和 PHP 5.3.0(最新的WampServer安装)的 Windows 7 64 位上。phpinfo()报告说我启用了 pdo_sqlite 并启用了 SQLite Library 3.6.15。

4

2 回答 2

52

你必须写

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

尾随:丢失。


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

DSN 前缀是sqlite:

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

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

文档

于 2010-03-11T14:30:25.753 回答
2

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

于 2010-03-11T14:13:14.727 回答