我刚刚安装了Debian Lenny与Apache, MySQL和PHP,我收到一个PDOException无法找到驱动程序。

这是它所引用的特定代码行:

$dbh = new PDO('mysql:host=')。DB_HOST。”;dbname = '。Db_name, db_user, db_pass)

DB_HOST、DB_NAME、DB_USER和DB_PASS是我已经定义的常量。它在生产服务器(以及我之前的Ubuntu server设置)上运行良好。

这与我的PHP安装有关吗?

在网上搜索也没有帮助,我得到的都是专家交流和例子,但没有解决方案。


当前回答

当添加这些到你的php.ini时,确保php_pdo.dll引用在db驱动dll之前,否则这也会导致这个错误消息。像这样加起来:

[PHP_PDO]
extension=php_pdo.dll
[PHP_PDO_MYSQL]
extension=php_pdo_mysql.dll

其他回答

对于CentOS上的PHP 5.5,我通过安装php55-mysqlnd包来解决这个问题。

sudo yum -y install php55w-mysqlnd # For Webtatic
sudo yum -y install php55u-mysqlnd # For Remi

为了帮助安装,请编写注释,因为这取决于系统上安装PHP的方式。可用的回购是网络战术和remi。

在我的例子中,我使用PDO和php-cli,它工作得很好。

只有当我试图从apache连接时,我得到了“丢失的驱动程序”问题,这是我不太明白的。

一个简单的apt-get install php-mysql解决了这个问题。Ubuntu 16.04 / PHP7。学分转到选定的答案&伊万的评论)

希望能有所帮助。

对于Windows 8.1/10版本的:\\php.ini文件,您应该取消注释行"extension=pdo_mysql"

我的解决方案是在安装php时,没有正确配置环境变量和php.ini文件。做这两个修正未注释的de line extension = pdo_mysql。所以工作

当添加这些到你的php.ini时,确保php_pdo.dll引用在db驱动dll之前,否则这也会导致这个错误消息。像这样加起来:

[PHP_PDO]
extension=php_pdo.dll
[PHP_PDO_MYSQL]
extension=php_pdo_mysql.dll