使用PDO连接本地SQLite数据库出现Unknown database报错如何解决
问题修复方案
核心错误点
- 你误用了MySQL数据库的PDO连接格式连接SQLite数据库,二者DSN规则完全不同:你当前的配置会默认访问XAMPP自带的MySQL服务,在MySQL中查找名为
jobs.db的库,自然触发未知数据库报错。 - 代码存在拼写错误:
$this->usernamae拼写错误,正确写法为$this->username - 代码冗余:catch块后的重复连接逻辑无意义,可直接删除
修正后代码
<?php class Dbh { public function connect() { // __DIR__会自动获取当前Dbh类文件所在的绝对目录,拼接数据库文件名,避免不同位置的入口文件调用时路径出错 $dbPath = __DIR__ . '/jobs.db'; try { // SQLite的DSN固定格式为 sqlite: + 数据库文件的绝对路径 $dsn = "sqlite:" . $dbPath; $pdo = new PDO($dsn); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return $pdo; } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); exit; } } } ?>
注意事项
- 不需要保留原代码中
servername、username、password、charset等MySQL专属配置,SQLite连接无需这些参数 - 请确保
jobs.db文件权限设置正确,XAMPP运行进程需要拥有该文件的读写权限
内容的提问来源于stack exchange,提问作者JordanLeo
相关产品推荐
相关产品推荐

