我刚刚安装了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安装有关吗?

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


当前回答

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

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

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

希望能有所帮助。

其他回答

在Ubuntu上执行

sudo apt-get install php5-mysql

更新:新版本应该使用php-sqlite3包而不是php5-sqlite。所以,如果你使用的是最新的ubuntu版本,请使用这个:

sudo apt-get install sqlite php-sqlite3

问题的原始答案在这里:

sudo apt-get install sqlite php5-sqlite
sudo /etc/init.d/apache2 restart

如果你的phpinfo()没有显示pdo_sqlite行(在我的情况下,在我的Ubuntu服务器上),你只需要运行上面的行,然后你就可以开始了。

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

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

我通过启用php_pdo_mysql解决了这个问题。“IIS信息服务- > PHP扩展”中的ddl。

我也有同样的问题。解决方案取决于操作系统。在我的情况下,我有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

这解决了我的问题