使用 PDO 连接到本地数据库时遇到问题 [重复]
Posted
技术标签:
【中文标题】使用 PDO 连接到本地数据库时遇到问题 [重复]【英文标题】:Trouble connecting to a local database using PDO [duplicate] 【发布时间】:2021-11-01 09:51:24 【问题描述】:我已经使用 SQLite 的 DB 浏览器创建了一个数据库。我想使用 php 中的 PDO 函数连接到数据库。我的项目目前在同一文件夹中有 php dataBaseHandler 文件和数据库文件。然后将要使用数据库的 index.php 文件位于不同的文件夹中(都在同一个根文件夹下)。基本上现在当使用 PDO 连接到数据库时,我收到一条错误消息 Connection failed: SQLSTATE[HY000] [1049] Unknown database 'jobs.db'
这是我的 PDO 代码
<?php
class Dbh
private $servername;
private $username;
private $password;
private $dbname;
private $charset;
public function connect()
$this->servername = 'localhost';
$this->usernamae = 'root';
$this->password = '';
$this->dbname = 'jobs.db';
$this->charset = 'utf8mb4';
try
$dsn = "mysql:host=".$this->servername.";dbname=".$this->dbname.";charset=".$this->charset;
$pdo = new PDO($dsn, $this->usernamae, $this->password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
catch (PDOException $e)
echo "Connection failed: ".$e->getMessage();
$dsn = "mysql:host=".$this->servername.";dbname=".$this->dbname.";charset=".$this->charset;
$pdo = new PDO($dsn, $this->usernamae, $this->password);
return $pdo;
?>
这是我的文件夹结构的照片,显示了数据库文件相对于 DataBaseHandler 文件的位置。Website Structure
我还应该提到我的代码是通过 XAMPP 运行的。
【问题讨论】:
如果是sqlite,为什么要使用mysql DSN连接它? @Barmar 正如我在帖子中所说,我是 SQL 和 PHP 的新手,所以我不知道我在做什么,哈哈。我应该怎么做才能解决问题。谢谢。 跟phpMyAdmin有什么关系? 【参考方案1】:您应该使用类似于$dsn = "sqlite:" . $this->dbname;
的内容来连接到 SQLite 数据库文件。
【讨论】:
以上是关于使用 PDO 连接到本地数据库时遇到问题 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 PDO 连接到远程 MYSQL 服务器,导致相同的错误 SQLSTATE[HY000] [2002] [重复]
使用 PDO_DBLIB 连接到 MS SQL 数据库的 PHP 错误