原产地保护组织:无法在内存中创建 SQLite 数据库
-
19-09-2019 - |
题
尝试了解一些有关 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(最新 Wamp服务器 安装)。 phpinfo()
报告我已经启用了 SQLite Library 3.6.15 的 pdo_sqlite 。
解决方案
你必须写
$db = new PDO('sqlite::memory:');
尾随的 :
不见了。
PDO_SQLITE 数据源名称 (DSN) 由以下元素组成:
DSN 前缀是 sqlite:.
要访问磁盘上的数据库,请将绝对路径附加到 DSN 前缀。
要在内存中创建数据库,请附加 :记忆: 到 DSN 前缀。
其他提示
不知道@赢的权限,但在* nix,SQLite的需要写权限的目录限制数据库文件的临时文件。
不隶属于 StackOverflow