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

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


当前回答

$DB_TYPE = 'mysql'; //Type of database<br>
$DB_HOST = 'localhost'; //Host name<br>
$DB_USER = 'root'; //Host Username<br>
$DB_PASS = ''; //Host Password<br>
$DB_NAME = 'database_name'; //Database name<br><br>

$dbh = new PDO("$DB_TYPE:host=$DB_HOST; dbname=$DB_NAME;", $DB_USER, $DB_PASS); // PDO Connection

这对我很管用。

其他回答

我有同样的错误共享主机使用cPanel。如果安装了mysqlnd,则默认安装pdo_mysql扩展。

但事实并非如此,我必须启用nd_pdo_mysql扩展来使用PDO。我使用PHP选择器GUI来更改它,但这是因为我懒得设置SSH连接。

O,忘记添加服务器是Apache和MariaDB(经常忘记,尽管MariaDB与MySql具有相同的父级,但在底层,一些功能可能会略有不同)。

PHP 8.0 与 Laravel 8.0 相关:

你检查你的php.ini(检查正确的位置与phpinfo()),如果MySQL和驱动程序安装正确?

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

您需要有一个名为pdo_mysql的模块。寻找以下在phpinfo(),

pdo_mysql

PDO Driver for MySQL, client library version => 5.1.44

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

这解决了我的问题