在内存中创建 SQLite 数据库
Posted
技术标签:
【中文标题】在内存中创建 SQLite 数据库【英文标题】:Create SQLite database in memory 【发布时间】: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。
【问题讨论】:
【参考方案1】:你必须写
$db = new PDO('sqlite::memory:');
缺少尾随 :
。
PDO_SQLITE 数据源名称 (DSN) 由以下元素组成:
DSN 前缀是 sqlite:。
要访问磁盘上的数据库,请将绝对路径附加到 DSN 前缀。
要在内存中创建数据库,请将 :memory: 附加到 DSN 前缀。
Documentation
【讨论】:
难以置信...哈哈。谢谢:D 每次执行脚本时都会重新创建这个数据库吗?或者它将存储在内存中?【参考方案2】:不确定@win 权限,但在 *nix 上,SQLite 需要对限制数据库文件的目录的写入权限以用于临时文件。
【讨论】:
以上是关于在内存中创建 SQLite 数据库的主要内容,如果未能解决你的问题,请参考以下文章
Ionic - 在 android 的不同目录中创建 SQLite 数据库