SQLite / PDO - 如何在localhost(XAMPP)上使用/连接数据库文件(.db)?

时间:2015-09-25 16:12:02

标签: php sqlite pdo xampp

我使用XAMPP

  • PHP Version 5.4.7
  • PDO驱动程序 - 启用了mysql,sqlite
  • SQLite Library - 3.7.7.1 - 已启用
  • sqlite3 - SQLite3模块版本 - 0.7 - 已启用
  • sqlite3.extension_dir - 无价值 - 无价值
  • API扩展 - mysql,mysqli,pdo_mysql

所以,如果我理解了一些教程,那就是我需要能够开始工作的全部内容。

所以,在C:\ xampp \ htdocs \ my_project中我复制了 database.db 文件(从这里下载的sakila:https://github.com/joshuakleveter/sakila_db/tree/master/public_html

然后我创建了如下所示的index.php:

<?php

try {
    $db = new PDO('sqlite:./database.db');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(Exception $e) {
    echo 'Error: ';
    echo $e->getMessage();
    die();
}

当我运行它时没有错误。如您所见,我的路径是/database.db。如果我将其改为

$db = new PDO('sqlite:.database.db');

没有错误。或者没有点:

$db = new PDO('sqlite:database.db');

绝对路径 - 没有错误。

更糟糕的是,如果我错误地存在.db名称:

$db = new PDO('sqlite:daaaaaaaaaaaatabase.db');

也 - 没有错误。

你能告诉我我做错了什么吗?

通过以上所有路径,我尝试了以下方法:

$results = $db->query('select * from film');
var_dump($results);
die();

我得到“一般错误:1没有这样的表”,但是database.db有那个表(我安装了sqlite,在命令行打开了该数据库并检查了 - database.db没问题。)

1 个答案:

答案 0 :(得分:2)

连接到尚未存在的文件是如何创建新数据库的。

相对路径是相对于当前目录的,您通常无法控制,除非将其设置为某个绝对路径。只需在打开数据库时直接使用绝对路径。