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

相关专题

更多
Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

11

2026.01.12

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

106

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

64

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

139

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

19

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

93

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

480

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

52

2026.01.09

热门下载

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

精品课程

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

共137课时 | 8.5万人学习

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

共6课时 | 6.9万人学习

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

共13课时 | 0.8万人学习

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

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