我使用XAMPP
所以,如果我理解了一些教程,那就是我需要能够开始工作的全部内容。
所以,在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没问题。)
答案 0 :(得分:2)
连接到尚未存在的文件是如何创建新数据库的。
相对路径是相对于当前目录的,您通常无法控制,除非将其设置为某个绝对路径。只需在打开数据库时直接使用绝对路径。