【问题标题】:Trouble connecting to a local database using PDO [duplicate]使用 PDO 连接到本地数据库时遇到问题 [重复]
【发布时间】: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有什么关系?

标签: php sql sqlite pdo


【解决方案1】:

您应该使用类似于$dsn = "sqlite:" . $this-&gt;dbname; 的内容来连接到 SQLite 数据库文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 2019-12-16
    • 2014-12-24
    • 1970-01-01
    • 2021-06-06
    相关资源
    最近更新 更多