gpt4 book ai didi

php - 未捕获的 PDOException : could not find driver

转载 作者:行者123 更新时间:2023-11-29 11:19:57 32 4
gpt4 key购买 nike

我刚刚安装了带有 Nginx 的 Ubuntu Server 16.04,并且我以这种方式安装了 php:

sudo apt-get install php7.0-cli php7.0-cgi php7.0-fpm php7.0-curl

对于 MySql,我已经安装了 percona,以这种方式:

apt-get install percona-server-server-5.7 percona-server-client-5.7

但我不明白为什么我不能在我的 php 脚本中使用 PDO,这是我的代码:

$db = new PDO("mysql:dbname=db;host=localhost;charset=utf8", "username", "password");

我收到此错误:

Uncaught PDOException: could not find driver

我在网上搜索了一下,发现我必须在 Windows 中的 php.ini 中取消注释这一行:

;extension=php_pdo_mysql.dll

或者 Linux 上的这一行:

;extension=php_pdo_mysql.so

我已经检查了我的 php.ini:

/etc/php/7.0/fpm/php.ini

并且我有一个.dll文件而不是.so文件,我也无法理解为什么我有一个dll而不是so。无论如何,启用该 .dll 文件并重新启动 php 没有任何变化。有人可以帮助我吗?

谢谢

最佳答案

安装 mysql 客户端/服务器包不会影响 PHP。 PHP 仍然需要绑定(bind)来与您的 mysql 服务器通信,特别是在您的情况下是 PDO mysql 驱动程序。

该软件包可能会被称为php7.0-pdo-mysql,具体取决于您的 Ubuntu 软件包管理器配置的存储库。如果您在 Ubuntu 16.04 上使用 PHP 7,它很可能是一个包含 php7.0-mysql 的元包。以下是我使用 Ondrej PPA 从 aptitude 16.04 获得的信息。

能力显示 php7.0-pdo-mysql

Package: php7.0-mysql                    State: installedAutomatically installed: noVersion: 7.0.9-1+deb.sury.org~trusty+1Priority: optionalSection: phpMaintainer: Debian PHP Maintainers Architecture: amd64Uncompressed Size: 514 kDepends: php-common (>= 1:35), ucf, php7.0-common, libc6 (>= 2.15)Provides: php-mysqli, php-mysqlnd, php-pdo-mysql, php7.0-mysqli, php7.0-mysqlnd, php7.0-pdo-mysqlDescription: MySQL module for PHP This package provides the MySQL module(s) for PHP. 

php7.0-pdo-mysql 是我们感兴趣的,用于在 PHP 中加载 PDO 的 mysql 驱动程序。因此,请确保在尝试安装之前搜索您的软件包管理器以找到正确的软件包,但您的发行版/存储库应该有一个类似的软件包。

安装后,您需要重新启动 php-fpm,例如 sudo service php7.0-fpm restart 然后检查您的 phpinfo()确保 pdo_mysql 驱动程序现已加载。

通过包管理器安装时,您不需要手动编辑 php.ini。另外,如果扩展不存在,则将 extension=pdo_mysql.so 行添加到 php.ini 中不会产生任何效果。显然,尝试加载 dll 在 Linux 上是行不通的,这些都是 Windows 专用的库。

关于php - 未捕获的 PDOException : could not find driver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39089731/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com