版权1997 - 2021 PHP文档组。10bet官方网站
本节提供了一个介绍选择你开发PHP应用程序时,需要与MySQL数据库交互。
一个API是什么?
一个应用程序编程接口或API定义类、方法、函数和变量,您的应用程序需要调用以执行其预期的任务。在PHP应用程序中,需要与数据库通信所需的api通常是通过PHP扩展。
可以程序或面向对象的api。程序API,你调用函数来执行任务,然后实例化类和面向对象的API调用生成的对象上的方法。两种,后者通常是首选的接口,因为它是更现代和导致组织有效的代码。
在编写PHP应用程序需要连接到MySQL服务器有几个API可用选项。本文讨论了什么是可用的,如何选择最好的解决方案为您的应用程序。
一个连接器是什么?
在MySQL文档,这个词10bet官方网站连接器是指一个软件,允许您的应用程序连接到MySQL数据库服务器。MySQL连接器提供了多种语言,包括PHP。
如果您的PHP应用程序需要与数据库服务器通信需要编写PHP代码来执行这些活动作为连接到数据库服务器,查询数据库和其他数据库相关功能。软件需要提供PHP应用程序将使用的API,并处理您的应用程序和数据库服务器之间的通信,在必要时可能使用其他中间库。这个软件是通常被称为一个连接器,它允许您的应用程序连接一个数据库服务器。
什么是驱动程序?
驱动程序是一种软件设计与特定类型的数据库服务器通信。司机也可以叫一个库,比如MySQL客户端库或MySQL本地司机。使用这些库实现底层协议与MySQL数据库服务器通信。
通过一个例子,PHP数据对象(PDO)数据库抽象层可以使用一个特定于数据库的驱动程序。其中一个司机具备PDO MYSQL驱动程序,它可以与MYSQL服务器接口。
有时人们互换使用术语连接器和驱动程序,这可以令人困惑。在mysql相关文档10bet官方网站”司机”是留给软件提供了特定于数据库连接器包的一部分。
一个扩展是什么?
PHP文档中,你会遇到10bet官方网站另一个术语扩展。PHP代码包含一个核心、以可选的扩展核心功能。PHP的MySQL相关扩展,比如mysqli扩展,和PDO MySQL驱动程序扩展,使用PHP扩展框架实现。
一个扩展通常公开API PHP程序员,允许其设施以编程方式使用。然而,一些扩展使用PHP扩展框架不暴露PHP程序员的API。
PDO MySQL驱动程序扩展,例如,不让一个API PHP程序员,但提供了一个接口PDO层上面。
API和扩展条款不应意味着同样的事情,作为一个扩展未必让程序员的API。
使用MySQL PHP API的主要产品是什么?
主要有两种API选项当考虑连接到一个MySQL数据库服务器:
PHP的mysqli扩展
PHP数据对象(PDO)
每个人都有自己的优点和缺点。下面的讨论旨在给予简要介绍每个API的关键方面。
PHP的mysqli扩展名是什么?
的mysqli
扩展,或有时称为,MySQL改进的扩展,开发利用新特性在4.1.3 MySQL系统版本和新发现。的mysqli
5,后来扩展包含PHP版本。
的mysqli
扩展有许多好处,增强了的关键mysql
扩展:
面向对象的接口
支持准备好的语句
支持多种语句
支持事务
增强调试功能
以及面向对象的接口扩展还提供了一个程序接口。
的mysqli
扩展是使用PHP扩展框架构建的,它的源代码位于目录ext / mysqli
。
为进一步的信息mysqli
扩展,看到7.3节,“MySQL扩展改善”。
PHP数据对象或PDO是专为PHP应用程序数据库抽象层。PDO为PHP应用程序提供了一个一致的API无论哪一类型的应用程序将连接到数据库服务器。理论上,如果您正在使用PDO API,你可以切换数据库服务器使用,从说火鸟MySQL,只需要进行少量更改PHP代码。
其他数据库抽象层的例子包括JDBC Java应用程序和Perl DBI。
虽然PDO有其优势,如一个干净、简单、便携的API,它的主要缺点是,它不允许你使用所有的高级特性可用的最新版本的MySQL服务器。例如,PDO不允许您使用MySQL支持多条语句。
PDO是使用PHP扩展实现的框架,它的源代码位于目录ext / pdo
。
有关PDO的进一步信息,请参阅http://www.php.net/book.pdo。
PDO MYSQL驱动程序是什么?
PDO MYSQL驱动程序不是一个API,至少从PHP程序员的角度来看。事实上,PDO MYSQL司机坐在下面的层PDO本身并提供MYSQL功能。程序员仍然调用PDO API,但是PDO使用PDO MYSQL驱动程序与MYSQL服务器进行通信。
PDO MYSQL驱动是几个可用的PDO司机之一。其他可用的PDO司机包括火鸟和PostgreSQL数据库服务器。
PDO MYSQL驱动程序使用PHP扩展框架实现。其源代码位于目录ext / pdo_mysql
。它不公开PHP程序员的API。
PDO MYSQL的驱动程序为进一步的信息,请参阅7.4节,“MySQL函数(PDO_MYSQL)”。
为了与MySQL数据库服务器通信,mysqli
和每次使用PDO MYSQL驱动一个底层库,实现所需的协议。在过去,唯一可用的库是MySQL客户端库,否则称为libmysqlclient
。
然而,提供的接口libmysqlclient
不与PHP应用程序优化沟通,libmysqlclient
最初设计时考虑到C应用程序。出于这个原因,MySQL本地司机,mysqlnd
,开发的另一种选择libmysqlclient
PHP应用程序。
这两个,mysqli
扩展和PDO MySQL驱动都可以单独配置为使用libmysqlclient
或mysqlnd
。作为mysqlnd
PHP系统专门设计是利用大量的内存和速度改进了吗libmysqlclient
。强烈建议您利用这些改进。
MySQL本地司机使用PHP扩展框架实现。源代码位于ext / mysqlnd
。它不公开PHP程序员的API。
特性的比较
下表比较的功能从PHP连接到MySQL的主要方法:
表7.1对比MySQL为PHP API选项
PHP的mysqli扩展 | PDO(使用PDO MySQL驱动和MySQL本机驱动) | |
---|---|---|
PHP版本引入了 | 5.0 | 5.0 |
MySQL发展现状 | 积极开发 | 积极开发 |
API支持数据集 | 是的 | 是的 |
API支持服务器端准备好的语句 | 是的 | 是的 |
API支持客户端准备好的语句 | 没有 | 是的 |
API支持存储过程 | 是的 | 是的 |
API支持多个语句 | 是的 | 大多数 |
支持所有MySQL 4.1 +功能 | 是的 | 大多数 |