试图了解一点关于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数据库文件.所以我知道至少有些东西起作用了...

我使用的是64位Windows7,带有Apache 2.2.11和PHP 5.3.0(最新的WampServer安装).phpinfo()报告我启用了PDO_SQLite和SQLite Library 3.6.15.

推荐答案

你必须写作

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

尾随的:号不见了.


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

DSN前缀是sqlite:.

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

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

Documentation

Database相关问答推荐

如何限制报表中返回的行数?

如何使用PostgreSQL列出特定数据库的表并按大小排序?

当某些 node 死亡时,mongo 副本集选举如何表现?

聚合以过滤 MongoDB 中的引用

无法向 SiriDB 添加新副本

更新数据库后如何更新redis?

数据库排序规则更改问题 (SQL Server 2008)

数据库模式 - location

PostgreSQL - 按时间戳值分组?

在表上插入或更新违反外键约束

如何找到 Oracle 数据库的 URL?

返回 DataSet/DataTable 的 PowerShell 函数中的奇怪行为

如何删除 SQLite 中具有多个 where 参数的行?

如何通过 PHP 和 Linux 使用 pdo 连接到 mssql?

获取错误函数 to_date(timestamp without time zone, unknown) 不存在

如何在多列上创建 FULLTEXT 索引?

用 SQL 进行条件插入?

如何以 SYS 身份在 Java 中连接到 Oracle?

如何使用 T-SQL 检测 SQL Server 数据库的只读状态?

如何知道mongodb使用的是哪个存储引擎?