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

标签 php sqlite pdo xampp

我使用 XAMPP

  • PHP 版本 5.4.7
  • PDO 驱动程序 - mysql、sqlite - 已启用
  • 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没问题)。

最佳答案

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

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

关于php - SQLite/PDO - 如何使用/连接到本地主机(XAMPP)上的数据库文件(.db)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32786409/

相关文章:

sqlite - 如何通过子字符串正则表达式排序?

sql - 如何使用SQL查找包含准确指定参与者的对话线程?

php - 什么时候使用 PDO 常量 PDO::PARAM_STR?

php - 使用 PDO 登录系统

php - 评论删除按钮不起作用

php - 注册用户总数

php - 将 perl/python/php 脚本编译成 linux 可执行文件的好编译器?

sqlite - 在 SQLite 中索引 View

php - 如何生成 6 位唯一编号?

php - mvc 中的模型(最佳实践,PHP)