您正在使用备用存储库之一安装现代版本的php,突然间您面临一个令人困惑的选择。你想在你的php程序中支持mysql(mysqli或PDO-mysql)。你会如何选择?首先,您可能应该使用PDO。与mysqli相比,它只是一个更清晰的数据库接口,如果您使用像Doctrine2这样的ORM,它也往往是受支持的选项。但是您可能已经发现,安装PDO包并不能为您提供MySQL支持。那么这两个包是什么?一旦我们将webtatic设置为repo,让我们看看Centos下的yum向我们展示了什么:*webtatic:us-east.repo.webtatic.com==================================================php56w-mysql.x86_64:用于使用MySQL数据库的PHP应用程序的php56w模块-mysqlnd.x86_64:用于PHP的模块使用MySQL数据库的应用程序简而言之,mysql扩展即mysql库是对Oracle/mysql...名为libmysql的通用客户端库的引用。这是php支持mysql的原始方式。MySQL提供了一个客户端api库,并使用该c库创建了一个php扩展,它依赖于libmysql来实现著名的mysql_函数,允许php与mysql通信。mysqlnd包(其中nd代表“本机驱动程序”)是一个使MySQL在PHP语言中最佳工作的项目的结果。再次引用mysql站点:mysqlnd库针对与PHP的紧密集成进行了高度优化。MySQL客户端库无法提供与通用客户端库相同的优化。mysqlnd库使用PHP的内部C基础架构无缝集成到PHP中。此外,它还使用PHP内存管理、PHPStreams(I/O抽象)和PHP字符串处理例程。例如,mysqlnd使用PHP内存管理,通过使用只读变量(写时复制)来节省内存,并使mysqlnd在PHP内存限制内工作。除了这些好处之外,还有一些有趣的增强功能和对插件的支持,您作为开发人员或系统管理员可能会特别感兴趣。一般来说,你的代码不应该中断,因为api在mysqlnd下应该与旧的mysql库相同。结论总之,您希望现在和将来都使用mysqlnd。
