如何使用/连接到本地主机(XAMPP)上的数据库文件(.db)


SQLite/PDO - How to use/connect to database file (.db) on localhost (XAMPP)?

我使用XAMPP

  • PHP版本5.4.7
  • PDO驱动- mysql, sqlite - enabled
  • SQLite库- 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是OK的)。

连接到一个不存在的文件是创建新数据库的方式。

相对路径是相对于当前目录的,除非将其设置为某个绝对路径,否则通常无法控制当前目录。打开DB时直接使用绝对路径即可