【问题标题】:Connection Error: could not find driver while using php -S localhost:8080连接错误:使用 php -S localhost:8080 时找不到驱动程序
【发布时间】:2023-01-15 17:39:58
【问题描述】:

我有一个名为 test 的 php 项目,只有文件 index.php

如果我运行localhost/test,它总是工作正常。 现在,我试图通过php -S localhost:8080 运行该项目,但它总是抛出Connection Error: could not find driver

我面临的问题是什么?我正在使用 Windows 10 和 PHP 8.2(PHP 7.4 也是如此)

<?php 
  class Database {
    // DB Params
    private $host = 'localhost';
    private $db_name = 'mvc';
    private $username = 'root';
    private $password = '';
    private $conn;

    // DB Connect
    public function connect() {
      $this->conn = null;

      try { 
        $this->conn = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->db_name, $this->username, $this->password);
        $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      } catch(PDOException $e) {
        echo 'Connection Error: ' . $e->getMessage();
      }

      return $this->conn;
    }
  }

  $database = new Database();
  $database->connect();
?>

【问题讨论】:

  • 似乎未安装 PDO 驱动程序,或者可能未启用。首先检查您的 php.ini。如果您安装的 PHP 版本没有附带它,您可能需要单独安装它,或者您可能只需要启用它。你做过研究吗?如果您搜索该错误,我很确定人们已经在线提出了修复此问题的建议。
  • 我已经尝试了很多解决方案,但没有奏效。 pdo_mysql 始终在我的 php.ini 上启用。为什么当我执行 localhost/test 时它可以工作,但当我运行 php -S localhost:8080 时它却不工作?也许我还缺少其他东西。
  • 也许其中每一个都基于带有单独 ini 文件的单独 PHP 安装?我们看不到您的机器,因此很难确定发生了什么。但是,如果您已经在机器中加载了 PHP 并与 Apache 一起工作,为什么还需要命令行服务器呢?
  • 好吧,最终您的实时系统可能会在 Apache 之类的系统上运行,因此您最终需要正确配置它。您不能在 PHP 内置服务器上运行生产应用程序,因此无论如何您都需要弄清楚如何运行。无论如何,我的意思是您可以将 Apache 的根目录指向您的 public 文件夹...这不会影响您随后读取 URI 以确定确切路由的能力。
  • 附言您是否从 php -S 服务器运行 phpinfo() 以确定它认为在驱动程序等方面安装了什么?

标签: php pdo mysql-connector


【解决方案1】:
  1. 我像大多数人一样通过localhost/test运行项目时做了phpinfo()。我发现 Loaded Configuration File 的值为 C: mppphpphp.ini。我去了那里并取消了extension=pdo_mysql行的注释。而且,它解决了这个问题。
  2. 之后,我在通过php -S localhost:8080 运行项目时再次执行了phpinfo(),并惊讶地发现Loaded Configuration File 的值为C: mppphpwindowsXamppPhpphp.ini。我按照相同的方法取消对相关行的注释,并已修复。所以,永远记得使用phpinfo()来找出正确的Configuration File

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    相关资源
    最近更新 更多