我刚刚安装了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 7.0的新版本的Ubuntu,你可以得到PHP -mysql包:

sudo apt-get install php-mysql

然后重新启动服务器:

sudo service apache2 restart

其他回答

无论我走到哪里,我都读到extension_dir的路径应该从ext更改为绝对路径。这对我很管用。然而,当我试图构建我同事PC的服务器时,我不得不让值到ext而不是放置一个绝对路径。

如果您确实放置了一个绝对路径,但仍然没有找到扩展名,请考虑同时尝试使用绝对路径和ext。

在我的Windows机器上,我必须在php.ini中给出扩展名目录的绝对路径:

Extension_dir = "c:\php5\ext"

有同样的问题,只是认为,网站是在MAMP的php下运行,但当你调用命令时,它运行mac的(如果没有bash路径修改)。当MAC没有这些扩展时,你会有问题。

运行PHP -i查找已加载的扩展,并安装那些您错过的扩展。 或者运行'/Applications/MAMP/bin/php/php5.3.6/bin/php artisan {your command}'来使用MAMP's

我花了最后一天的时间试图弄清楚为什么我会得到以下错误。我运行的是Ubuntu 14.04。

存在的问题: 我注意到我的php - cli版本运行的是php7.0,但php_info() (web版本)显示的是php 5.5.9。尽管php_info()说pdo已启用,但使用命令行(CLI)无法识别pdo_mysql命令。原来我的旧版本启用了mysql,但CLI版本没有启用。我所做的就是为php7.0安装mysql,它就可以工作了。

这是有效的方法:

查看版本信息:

php -v

安装mysql for php7.0

sudo apt-get install php7.0-mysql

1)确保你的CLI版本与你的网页版本相同 2)如果它们是不同的,确保你的CLI版本有mysql插件,因为它没有作为默认提供。

我也有同样的问题。解决方案取决于操作系统。在我的情况下,我有debian,所以解决它:

更新我的php版本从(php5到php7) 安装php-mysql和php7.0-mysql 安装php-mysql 安装php7.0-mysql 我在/etc/php/7.0/apache2/php.ini中编辑了我的php.ini 取消注释行:extension=php_pdo_mysql.dll 然后重启apache: Service apache2 restart

这解决了我的问题