0

0

PHP 5数据对象(PDO)抽象层与Oracle_PHP教程

php中文网

php中文网

发布时间:2016-07-20 11:07:20

|

1031人浏览过

|

来源于php中文网

原创

名新 php教程?name=php">php 数据对象 (pdo) 数据抽象层的原始开发人员为您简要介绍该抽象层,重点讲述与 oracle 一起运行的情况。
  需要 php:5.0
  需要其他:oracle 8 或更高版本客户端库
  下载用于 oracle 的 pdo (windows):php_pdo.dll, php_pdo_oci.dll
  下载用于 oracle 的 pdo (unix):pdo, pdo_oci
  pdo 简介
  php 主要是由志愿者完成的项目;尽管有少数一些固定的“核心”开发人员,但是我们没有一个人在全职受薪的开发 php。除此之外,我们分别位于世界不同地方,您可以想象长期开发的协调工作是何等困难。因此,php 主要是基于突发奇想的个人短期需求来发展的,其原因也多种多样,有的是试验,有的则是因为“明天有活要交”。尽管这样通常每一步都会改善 php,但从长远来看则是缺乏完整性 - 数据库教程扩展就是一个重要的例子。
  在各种不同的数据扩展(oci、mysqlpostgresql、mssql 等)之间根本没有真正的一致性,甚至在某些情况下,在这些扩展内部也没有真正的一致性。几乎所有这些扩展都在使用与基础数据库 api 紧密相连的不同代码完成着相同种类的任务。而且因为我们(php 核心开发人员和扩展开发人员)的人手非常有限,因此这就造成了代码更加难以维护,从而为 php 带来了很大的问题。
  由于 php 越来越受欢迎并不断成功,因此主要 php 数据库扩展的维护者们参加了在德国举行的 linuxtag 2003 大会,在会上我们交换了对 php 前景的看法。在讨论 php 发展的随机性时,我们确定了在 php 中进行数据库访问的一些目标:
  ·提供一种轻型、清晰、方便的 api
  ·统一各种不同 rdbms 库的共有特性,但不排除更高级的特性。
  ·通过 php 脚本提供可选的较大程度的抽象/兼容性。
  我们之所以提出了这种 php 数据对象 (pdo) 的概念,是因为我们希望通过采用 zend engine 2(php 5 的核心)先进的面向对象特性获得该 api 的一些更优秀的性能。
  php 中的数据抽象层概念一点都算不上新;在 google 中查询“php database abstraction”会找到大约 83,200 个匹配项。它几乎是许多 php 开发人员梦寐以求的,而其产生则部分归因于我们不完整的 api。如果您曾经尝试过使用第三方抽象层来完成任何真正重要的工作,通常会发现这些抽象层对于手头的工作来说设计的功能过于强大了 - 或者表现为在使用前需要进行大量学习,或者表现为接口速度缓慢,参数需要经过多层脚本函数调用才能到达数据库自有的 api;通常是存在上述两种表象。
  为什么这些抽象层会存在这种问题?这些抽象层总是在试图完成太多的任务,甚至可能是不可能的任务。我们决定以实用为目标,仅将一些最常见的数据库 api 特性作为我们的基础,并使得 pdo 驱动程序能够将它们特定于产品的特性暴露为常规扩展函数。
  为什么使用 pdo?
  听过有关数据库抽象扩展谣传的大多数人会立刻对 pdo 的扩展方面产生疑惑 - 我们是否要分析 sql,将其转换为相应的后端方言呢?我们如何处理特性 x 或特性 y,等等。因此,当您听说我们在 pdo 中根本不用为此而担忧时可能会大吃一惊;我们不希望使所有内容都完全统一,因为要使得这种统一成为可能,只能是将自己限制在最低的通用标准。
  如果 pdo 不是一个整体的抽象层,那还有什么别的原因值得您考虑使用它吗?
  ·性能。pdo 从一开始就吸取了现有数据库扩展成功和失败的经验教训。因为 pdo 的代码是全新的,所以我们有机会重新开始设计性能,以利用 php 5 的最新特性。
  ·能力。pdo 旨在将常见的数据库功能作为基础提供,同时提供对于 rdbms 独特功能的方便访问。
  ·简单。pdo 旨在使您能够轻松使用数据库。api 不会强行介入您的代码,同时会清楚地表明每个函数调用的过程。
  ·运行时可扩展。pdo 扩展是模块化的,使您能够在运行时为您的数据库后端加载驱动程序,而不必重新编译或重新安装整个 php 程序。例如,pdo_oci 扩展会替代 pdo 扩展实现 oracle 数据库 api。还有一些用于 mysql、postgresql、odbc 和 firebird 的驱动程序,更多的驱动程序尚在开发。
  您可能想了解 pdo 与其他常用的抽象层的对比情况,例如 pear db 或 adodb。无论在 api 方面还是在性能方面,pdo 都比其他常见抽象层要轻型,但是涉及到在各个数据库后端之间提供统一性方面,则不如那些抽象层,例如用于处理大量可移植性问题的 pear mdb 2 抽象层。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/444960.htmlTechArticle名新 PHP 数据 对象 (PDO) 数据抽象层的原始 开发 人员为您简要介绍该抽象层,重点讲述与 Oracle 一起运行的情况。 需要 PHP:5.0 需要其他:...

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

72

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

131

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

54

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

19

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

85

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

43

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

11

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

49

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.8万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 7.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号