尝试了解PDO并了解this tutorial。它有以下代码片段:
<?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()
报告我启用了SQLite Library 3.6.15的pdo_sqlite。
答案 0 :(得分:47)
你必须写
$db = new PDO('sqlite::memory:');
缺少尾随:
。
PDO_SQLITE数据源名称(DSN)由以下元素组成:
DSN前缀为 sqlite:。
要访问磁盘上的数据库,请附加DSN前缀的绝对路径。
要在内存中创建数据库,请将:memory:附加到DSN前缀。
答案 1 :(得分:2)
不确定@ win权限,但在* nix上,SQLite需要对临时文件的dir限制数据库文件具有写权限。