使用 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-&gt;dbname; 的内容来连接到 SQLite 数据库文件。

【讨论】:

以上是关于使用 PDO 连接到本地数据库时遇到问题 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PDO 连接到实时数据库

使用 PDO 连接到远程 MYSQL 服务器,导致相同的错误 SQLSTATE[HY000] [2002] [重复]

使用 PDO_DBLIB 连接到 MS SQL 数据库的 PHP 错误

仅在需要时自动连接到 PDO

在docker上使用laravel时无法连接到mysql数据库(未找到,pdo,连接被拒绝)

使用 PDO 连接到 Sybase 的正确 DSN