【问题标题】:Create SQLite database in memory在内存中创建 SQLite 数据库
【发布时间】:2011-01-26 09:36:56
【问题描述】:

正在尝试了解 PDO 并正在经历 this tutorial。它有以下sn-p的代码:

<?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 安装)。 phpinfo() 报告说我启用了 pdo_sqlite 并启用了 SQLite Library 3.6.15。

【问题讨论】:

    标签: php database sqlite pdo in-memory-database


    【解决方案1】:

    你必须写

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

    缺少尾随 :


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

    DSN 前缀是 sqlite:

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

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

    Documentation

    【讨论】:

    • 难以置信...哈哈。谢谢:D
    • 每次执行脚本时都会重新创建这个数据库吗?或者它将存储在内存中?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-02-28
      • 2019-10-12
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 2023-04-04
      • 2023-04-03
      • 2013-02-03
      • 2019-01-14
      相关资源
      最近更新 更多