当前位置:  开发笔记 > 编程语言 > 正文

PHP中Mysqlnd,PDO和PDO_Mysql扩展之间有什么区别?

如何解决《PHP中Mysqlnd,PDO和PDO_Mysql扩展之间有什么区别?》经验,为你挑选了1个好方法。

他们似乎是同一回事,但又有所不同。我不知道是哪一个:我知道我们可以将PDO用作,new PDO()并使用prepare()query()方法来从数据库中获取数据。因此,如果PDO在扩展列表中提到了这一点,那么pdo_mysql和mysqlnd到底是什么(用外行术语)?



1> Don't Panic..:

PDO本身是PHP提供的数据库抽象层。这可能并不意味着您真正想的是什么,但是PHP在PDO文档中将其清除了:

PDO提供了一个数据访问抽象层,这意味着无论您使用的是哪个数据库,您都可以使用相同的功能来发出查询和获取数据。PDO不提供数据库抽象;它不会重写SQL或模拟缺少的功能。如果需要该功能,则应使用完整的抽象层。

根据你的系统,你可能需要启用它的驱动程序,然后才能使用它。(但可能不是。)

您可以将PDO与各种不同的数据库(MySQL,Oracle,PostgreSQL等)一起使用,但需要为要使用的数据库类型启用特定的驱动程序。从前面链接的同一份PDO简介文档中可以得出:

请注意,您不能单独使用PDO扩展名执行任何数据库功能。您必须使用特定于数据库的PDO驱动程序来访问数据库服务器。

pdo_mysql是其中之一。这些驱动程序实现PDO接口,这意味着它们允许您使用prepare()query()你的特定数据库

mysqlnd处理PHP和MySQL之间的通信。pdo_mysql自PHP 5.4版以来,它一直是所有MySQL扩展(例如)的默认驱动程序,因此,如果您使用受支持的PHP版本,则可能正在使用它。但是它在后台工作,仅处理通信。您将不会使用任何mysqlnd功能。在mysqlnd文档的“不是什么”部分中:

尽管MySQL本机驱动程序是作为PHP扩展编写的,但需要注意的是它没有为PHP程序员提供新的API。MySQL扩展,mysqli和PDO MYSQL提供了用于MySQL数据库连接的程序员API。这些扩展现在可以使用MySQL Native Driver的服务与MySQL Server通信。因此,您不应将MySQL本机驱动程序视为API。

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有