gpt4 book ai didi

php - php中的Mysqlnd、PDO和PDO_Mysql扩展有什么区别?

转载 作者:行者123 更新时间:2023-12-03 20:18:09 30 4
gpt4 key购买 nike

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

最佳答案

PDO 本身是一个 database abstraction layer由 PHP 提供。这可能并不完全符合您的想法,但 PHP 在 the PDO documentation 中澄清了这一点。 :

PDO provides a data-access abstraction layer, which means that, regardless of which database you're using, you use the same functions to issue queries and fetch data. PDO does not provide a database abstraction; it doesn't rewrite SQL or emulate missing features. You should use a full-blown abstraction layer if you need that facility.



根据您的系统, you might need to enable its driver在你可以使用它之前。 (但可能不是。)

您可以将 PDO 用于各种不同的数据库(MySQL、Oracle、PostgreSQL 等),但您需要 enable the specific driver对于您要使用的数据库类型。从我之前链接的同一个 PDO 介绍文档中:

Note that you cannot perform any database functions using the PDO extension by itself; you must use a database-specific PDO driver to access a database server.



pdo_mysql就是其中之一。这些驱动程序实现了 PDO 接口(interface),这意味着它们允许您使用 prepare() , query()等与您的特定数据库。
mysqlnd处理 PHP 和 MySQL 之间的通信。自 PHP 5.4 以来,它一直是所有 MySQL 扩展(如 pdo_mysql )的默认驱动程序,因此,如果您使用的是受支持的 PHP 版本,那么您可能正在使用它。但它在幕后工作,只是处理通信。你不会使用任何 mysqlnd职能。来自 the mysqlnd documentation 的“它不是什么”部分:

Although MySQL Native Driver is written as a PHP extension, it is important to note that it does not provide a new API to the PHP programmer. The programmer APIs for MySQL database connectivity are provided by the MySQL extension, mysqli and PDO MYSQL. These extensions can now use the services of MySQL Native Driver to communicate with the MySQL Server. Therefore, you should not think of MySQL Native Driver as an API.

关于php - php中的Mysqlnd、PDO和PDO_Mysql扩展有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41812651/

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