码迷,mamicode.com
首页 > 数据库 > 详细

《细说PHP》第四版 样章 第18章 数据库抽象层PDO 2

时间:2019-08-19 09:56:02      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:mssql   通用   客户机   api   加载   而且   函数   dia   指定   

18.2  PDO所支持的数据库

使用PHP可以处理各种数据库系统,包括MySQL、PostgreSQL、Oracle、MsSQL等。但访问不同的数据库系统时,其所使用的PHP扩展函数也是不同的。例如,使用PHP的MySQL或MySQLi扩展函数,只能访问MySQL数据库;如果需要处理Oracle数据库,就必须安装和重新学习PHP中处理Oracle的扩展函数库,每种数据库都有对应的扩展函数,如图18-3所示。应用每种数据库时都需要学习特定的函数库,这样是比较麻烦的,更重要的是这使得数据库间的移植难以实现。

为了解决这个难题,就需要一种“数据库抽象层”。它能解决应用程序逻辑与数据库通信逻辑之间的耦合,通过这个通用接口传递所有与数据库相关的命令,应用程序就能使用多种数据库解决方案中的某一种,只要该数据库支持应用程序所需要的特性,而且抽象层提供了与该数据库兼容的驱动程序。如图18-4为数据库抽象层的应用模式。

PDO就是一个“数据库访问抽象层”,其作用是统一各种数据库的访问接口,能够轻松地在不同数据库之间进行切换,使得数据库间的移植容易实现。与MySQL和MySQLi的函数库相比,PDO让跨数据库的使用更具亲和力;与ADODB和MDB2等同类数据库访问抽象层相比,PDO更高效。另外,PDO与PHP支持的所有数据库扩展都非常相似,因为PDO借鉴了以往数据库扩展的最好特性。

技术图片

图18-3  每种数据库都有对应的扩展函数

 

技术图片

图18-4  数据库抽象层的应用模式

 

对任何数据库的操作,并不是使用PDO扩展本身执行的,必须针对不同的数据库服务器使用特定的PDO驱动程序访问。驱动程序扩展则为PDO和本地RDBMS客户机API库架起一座桥梁,用来访问指定的数据库系统。这能大大提高PDO的灵活性,因为PDO在运行时才加载必需的数据库驱动程序,所以不需要在每次使用不同的数据库时重新配置和编译PHP。例如,如果数据库服务器需要从MySQL切换到Oracle,只要重新加载PDO_OCI驱动程序就可以了。支持PDO的驱动及相应的数据库如表18-1所示。

 

表18-1  支持PDO的驱动及相应的数据库

 

技术图片

   

 

想要确定所处的环境中是否有可用的PDO驱动程序,可以在浏览器中通过加载phpinfo()函数,查看PDO部分的列表,或者查看pdo_drivers()函数返回的数组来判断。

 

 

技术图片

《细说PHP》第四版 样章 第18章 数据库抽象层PDO 2

标签:mssql   通用   客户机   api   加载   而且   函数   dia   指定   

原文地址:https://www.cnblogs.com/itxdl/p/11375161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!