mysqli 和 PDO_MySQL PHP 扩展是基于 C 客户端库的轻量级包装器。扩展可以使用 mysqlnd 库或 libmysqlclient
库。选择库是编译时决定的。
mysqlnd 库是 PHP 发行版的一部分。它提供诸如延迟连接和查询缓存之类的功能,这些功能在 libmysqlclient 中不可用,因此强烈建议使用内置的 mysqlnd 库。有关更多详细信息以及它提供的功能和功能列表,请参见 mysqlnd 文档。
示例 #1 配置使用 mysqlnd 或 libmysqlclient 的命令
// Recommended, compiles with mysqlnd $ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd // Alternatively recommended, compiles with mysqlnd $ ./configure --with-mysqli --with-pdo-mysql // Not recommended, compiles with libmysqlclient $ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config
库功能比较
建议使用 mysqlnd 库而不是 MySQL 客户端服务器库 (libmysqlclient)。这两个库都受支持,并且不断改进。
MySQL 本机驱动程序 (mysqlnd) | MySQL 客户端服务器库 (libmysqlclient ) |
|
---|---|---|
PHP 发行版的一部分 | 是 | 否 |
PHP 版本介绍 | 5.3.0 | N/A |
许可证 | PHP 许可证 3.01 | 双重许可 |
开发状态 | 活跃 | 活跃 |
生命周期 | 未宣布结束 | 未宣布结束 |
编译默认值(适用于所有 MySQL 扩展) | 是 | 否 |
压缩协议支持 | 是 | 是 |
SSL 支持 | 是 | 是 |
命名管道支持 | 是 | 是 |
非阻塞、异步查询 | 是 | 否 |
性能统计 | 是 | 否 |
LOAD LOCAL INFILE 尊重 open_basedir 指令 | 是 | 否 |
使用 PHP 的本机内存管理系统(例如,遵循 PHP 内存限制) | 是 | 否 |
将数字列作为双精度返回(COM_QUERY) | 是 | 否 |
将数字列作为字符串返回(COM_QUERY) | 是 | 是 |
插件 API | 是 | 有限 |
自动重新连接 | 否 | 可选 |