PDO_MYSQL 是一个驱动程序,它实现了 PHP 数据对象 (PDO) 接口以启用从 PHP 到 MySQL 数据库的访问。当运行 7.1.16 之前的 PHP 版本,或者 7.2.4 之前的 PHP 7.2 时,将 MySQL 8 Server 的默认密码插件设置为 mysql_native_password 否则你会看到类似于 The server requested authentication method unknown to the client [caching_sha2_password] even when caching_sha2_password 的错误未使用。这是因为 MySQL 8 默认为 caching_sha2_password,这是一个无法被旧版 PHP (mysqlnd) 识别的插件。相反,通过在 .未来的 PHP 版本将支持 caching_sha2_password 插件。与此同时,mysql_xdevapi 扩展确实支持它。警告 当心:某些 MySQL 表类型(存储引擎)不支持事务。当使用不支持事务的表类型编写事务数据库代码时,MySQL 会假装事务已成功启动。此外,发出的任何 DDL 查询都将隐含任何未决事务。 MySQL 驱动程序不通过 PDOStatement::bindParam 正确支持虽然可以使用此类参数,但它们不会更新(即忽略实际输出) 常见的 Unix 发行版包括可以安装的二进制版本的 PHP。虽然这些二进制版本通常是在支持 MySQL 扩展的情况下构建的,但扩展库本身可能需要使用额外的包进行安装。检查您选择的发行版随附的包管理器的可用性。例如,在 Ubuntu 上,该软件包安装了 ext/mysql、ext/mysqli 和 PDO_MYSQL PHP 扩展。在 CentOS 上,该软件包还安装了这三个 PHP 扩展。或者,您可以自己编译此扩展。从源代码构建 PHP 允许您指定要使用的 MySQL 扩展,以及为每个扩展选择的客户端库。编译时使用--with-pdo-mysql[=DIR]安装PDO MySQL扩展,其中optional为MySQL基础库。 Mysqlnd 是默认库。有关选择库的详细信息,请参阅选择 MySQL 库。可选地,--with-mysql-sock[=DIR] 设置为所有 MySQL 扩展(包括 PDO_MYSQL)的 MySQL unix 套接字指针的位置。如果未指定,则搜索默认位置。可选地,--with-zlib-dir[=DIR] 用于设置 libz 安装前缀的路径。使用适当的 PDO_MySQL 常量启用 SSL 支持,这等效于调用“MySQL C API”函数 mysql_ssl_set 此外,无法使用 PDO::setAttribute 启用 SSL,因为连接已经存在。另请参阅有关“使用 SSL 连接到 MySQL”的 MySQL 文档 下面的常量由这个驱动程序定义,只有当扩展被编译成 PHP 或在运行时动态加载时才可用。此外,这些特定于驱动程序的常量只应在您使用此驱动程序时使用。将特定于驱动程序的属性与另一个驱动程序一起使用可能会导致意外行为。如果您的代码可以针对多个驱动程序运行,则 PDO::getAttribute() 可用于获取属性以检查驱动程序。在 上,MySQL 驱动程序将使用 MySQL API 的缓冲版本。如果您正在编写可移植代码,则应改为使用。如果此属性设置为 a,MySQL 驱动程序将使用 MySQL API 的缓冲版本。如果你正在编写可移植代码,你应该使用 instead。示例 #1 强制在 mysql 中缓冲查询“我的应用程序仅适用于 mysql;我应该改用 \$stmt->fetchAll()” 注意,此常量只能在构造新数据库句柄时用在数组中。允许将本地数据加载限制到位于此指定目录中的文件。从 PHP 8.1.0 开始可用。注意,这个常量只能在构造新的数据库句柄时用在数组中。连接到 MySQL 服务器时要执行的命令。重新连接时会自动重新执行。注意,这个常量只能在构造新的数据库句柄时用在数组中。从命名的选项文件而不是从 .如果使用 mysqlnd,则此选项不可用,因为 mysqlnd 不读取 mysql 配置文件。从指定的组或指定的文件中读取选项。如果使用 mysqlnd,则此选项不可用,因为 mysqlnd 不读取 mysql 配置文件。最大缓冲区大小。默认为 1 MiB。针对 mysqlnd 编译时不支持此常量。返回找到(匹配)的行数,而不是更改的行数。 SSL 证书颁发机构的文件路径。包含受信任的 SSL CA 证书的目录的文件路径,这些证书以 PEM 格式存储。 SSL 证书的文件路径。用于 SSL 加密的一个或多个允许密码的列表,采用 OpenSSL 可以理解的格式。例如:SSL 密钥的文件路径。提供一种禁用服务器 SSL 证书验证的方法。这存在于 PHP 7.0.18 和 PHP 7.1.4。设置为 时禁用 PDO::prepare() 和 PDO::query() 中的多查询执行。注意,这个常量只能在构造新的数据库句柄时在数组中使用 这些函数的行为受中设置的影响。有关 PHP_INI_* 模式的更多详细信息和定义,请参阅有关 PHP_INI_* 模式的更多详细信息和定义,请参阅可以设置配置设置的位置 设置 Unix 域套接字。如果在配置时发现域套接字,则可以在编译时设置此值。此 ini 设置仅适用于 Unix。为 PDO_MYSQL 启用调试。此设置仅在针对 mysqlnd 编译 PDO_MYSQL 且处于 PDO 调试模式时可用。