未捕获的PDOException:即使扩展存在,也找不到驱动程序

时间:2018-11-22 18:33:10

标签: php pdo xampp

另一个错误导致我发疯。 我从字面上看了50个stackoverflow帖子,并尝试了所有不同的解决方案:

  • 检查php.ini以查看是否启用了扩展名以及用于检查dll是否存在的文件夹

Enabled and extension_dir pointing to the correct dir too

Present in phpinfo()

Files present in xampp/php/ext

  • 还尝试从最新的php版本中提取php_pdo_mysql.dll文件,检查xampp原始文件是否被损坏或没有运气。

  • 在环境变量中设置路径

这是我在本地环境中使用的:

  • Xampp 7.2.4
  • PHP 7.2.4
  • Apache 2.4.33

这是我的代码:

return new PDO('
    mysql:host='.Env::getInstance()->env('dbhost').';
    dbname='.Env::getInstance()->env('dbname'),
    Env::getInstance()->env('dbusername'),
    Env::getInstance()->env('dbpassword')
);

有没有我尝试过的东西?请我一劳永逸地解决此问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

在下面的php手册示例中,传递给PDO构造函数的参数必须类似于$ dsn。

<?php
/* Connect to a MySQL database using driver invocation */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>

您的第一个参数似乎包含错误的内容。