PHP致命错误:未捕获PDOException:找不到驱动程序

时间:2016-11-27 09:19:09

标签: php mysql pdo

我一直在尝试使用PDO从php连接到mysql。但是,我收到此错误消息:

  

PHP致命错误:未捕获PDOException:在/home/abdullah/Documents/projects/cs50_radio/public/test.php:5中找不到驱动程序   堆栈跟踪:   #0 /home/abdullah/Documents/projects/cs50_radio/public/test.php(5):PDO-> __ construct(' mysql:host = 127 ....')

启用并安装PDO。我检查了phpinfo();我无法弄清楚错误。 这是我用来连接的代码:

<?php 
 $user = "root";
 $pass = "root";

$dbh = new PDO("mysql:host=127.0.0.1;dbname=radio;port=3306", $user, $pass);
//$dbh->query('INSERT INTO users (name) VALUES ("abdullah")'); 
$dbh = null;
?>

我的项目文件夹是否应包含任何其他驱动程序或文件? 或者我在代码中遗漏了什么

4 个答案:

答案 0 :(得分:6)

要使用您需要安装它们的不同驱动程序,在Windows上只需取消注释php.ini中的行。

extension=php_pdo_mysql.dll

在Linux上,您使用packpage manager安装扩展程序:

sudo apt install php7.1-mysql

答案 1 :(得分:3)

我遇到了同样的问题,因为我下载的Apache和PHP版本之间存在一些不兼容性(并不是很明显)。尝试编写一个玩具PHP脚本,只需创建一个新的PDO对象,例如:

<?php

$dbname   = 'mydb';
$username = 'myuser';
$password = 'mypassword';
try {
    $pdo = new \PDO("mysql:host=localhost;dbname=$dbname", $username,  $password);
} catch (Exception $e) {
    print $e->getMessage() . "\n";
}
print "OK\n";

然后从命令行运行该脚本。如果你没有找到“找不到驱动程序”的话。错误消息,然后指出PHP和Apache版本之间不兼容。

答案 2 :(得分:1)

在我的PHP 7.4中,我没有php.ini,而是有php.ini-development和php.ini-production。因此,我仅创建了一个新的php.ini文件,并将配置复制到其中。然后,我取消注释并将扩展目录更改为完整的安装路径。

 extension_dir = "C:/php/ext"

且未注释

 extension=pdo_mysql

答案 3 :(得分:0)

好的,扩展名本身有问题。它有助于重新安装MySQL扩展。这是PHP 7.3的示例:

sudo apt purge php7.3-mysql
sudo apt install php7.3-mysql
sudo service apache2 restart