Write once - run anywhere
一次编写——随处运行
这是Java的一句行销口号,但是它同时也是PHP的关键特性之一。许多商业模型依赖于操作系统无关性来保证产品能够销售给广泛的客户群体。因而,为什么要把你自己绑在某种数据库厂商的身上呢?数据库抽象层使得你能够与数据库独立的开发你的应用程序。但是,通常情况下它们对性能的影响超过了你所希望的,要么他们并不足够抽象以消除所有和特定数据库相关的代码。
这篇文章将教给我什么?
这篇文章将对数据库抽象包 PEAR MDB 有一个很好的介绍。文章的焦点将是对 MDB 超越类似包所提供的更先进的特性,例如数据类型抽象和基于 XML 的 schema 管理。对 PHP 和 SQL 的基本理解是推荐的。
为什么另外再要一个数据库类?
通常, web 工程在客户已经确定了要使用那种 RDBMS (关系型数据库管理系统)之后被添加给已经存在的 IT 基础结构。即使那并不是因为不同的预算可能影响的你选择何种数据用于部署的情况。最终,你作为开发者可能简单的偏好于不把自己绑在某个厂商身上。自此,意味着给每个支持的数据保持版本或者牺牲更多性能但是获得多于必须的易用性:走入 PEAR MDB 吧。
MDB 是着眼于使得编写 RDBMS 无关的 PHP 程序成为简单的过程的数据库抽象层。大部分其他的 PHP 的所谓数据库抽象层紧紧给所有支持的数据库提供了一个公用 API 以及非常有限的抽象(大部分只是针对序列的)。MDB 另一方面能够用来抽象所有数据库发送和接收的数据。甚至数据库 schema 都能被定义为 RDBMS 无关的格式。但是它提供这些功能的同时仍然保持了很高的性能以及简单易用。这是通过深入观察两个流行的数据库抽象层,PEAR DB 和 Metabase, 之后并且对它们进行了融合后获得的。而且在融合过程中,趁着这个机会清理了它们融合后的 API 以及任何影响性能的设计。
MDB 是怎样出现的?
早在 2001 年的秋天,我就在寻找一种可能能够让我公司的程序框架与 RDBMS 独立的数据库抽象包。这个目标是把特定数据库相关的代码数量减少到零。我发现提供这样的功能的唯一的一个包是 Metabase。但是 Metabase有一些部分是因为为了和 PHP3 兼容的让人不舒服的 API。尽管如此,我们决定 Metabase 是我们唯一的选择。但是即使是在给 Metabase 增加了一个性能改进的补丁之后,我们仍然感到我们放弃了太多的性能。我们在 2001 年的 PHP 国际会议上碰到了 Metabase 的作者,并且我们谈论了让像 Metabase 这样的东西成为 PEAR 工程一部分的好处。后来不久,在 PEAR 邮件列表上就 PEAR DB 和 Metabase 融合的可能的好处又开始了一场讨论。在我们公司进行了许多讨论之后,我们决定承担这个任务。数个月的艰辛工作之后,我们现在有了 MDB 的第一个稳定的 release。
PEAR MDB 数据库抽象层 ?? 一次编写?随处运行
时间: 2024-10-30 02:54:03
PEAR MDB 数据库抽象层 ?? 一次编写?随处运行的相关文章
PEAR MDB 数据库抽象层 —— 一次编写—随处运行
数据|数据库 Write once - run anywhere一次编写--随处运行 这是Java的一句行销口号,但是它同时也是PHP的关键特性之一.许多商业模型依赖于操作系统无关性来保证产品能够销售给广泛的客户群体.因而,为什么要把你自己绑在某种数据库厂商的身上呢?数据库抽象层使得你能够与数据库独立的开发你的应用程序.但是,通常情况下它们对性能的影响超过了你所希望的,要么他们并不足够抽象以消除所有和特定数据库相关的代码. 这篇文章将教给我什么? 这篇文章将对数据库抽象包 PEAR MDB 有一
php数据库抽象层 PDO_php技巧
下面就来介绍一下数据库抽象层PDO的使用: PDO(PHP Data Objects)是一个轻量级的PHP扩展,提供了一个数据访问抽象层.还要就是PDO只能在PHP5.0以上版本使用. 下面来介绍一下PDO常用的预定义常量: PDO::PARAM_BOOL (integer) 表示布尔数据类型 PDO::PARAM_NULL (integer) 表示数据类型为NULL的SQL PDO::PARAM_INT (integer) 表示为integer数据类型的SQL PDO::PARAM_STR
php数据库抽象层PDO的简单测试
测试代码如下: <?php/**************************@Filename: pdotest.php@Content : PDO操作MySQL,Access(测试)**************************/if($_GET['db'] == 'mysql'){ $dns = 'mysql:host=localhost;dbname=test'; $dbuser = 'root'; $dbpass = 'root'; $db = new
一个用于mysql的数据库抽象层函数库
<?php // // SourceForge: Breaking Down the Barriers to Open Source Development // Copyright 1999-2000 (c) The SourceForge Crew // http://sourceforge.net // // $Id: database.php,v 1.6 2000/04/11 14:17:13 cvs Exp $ // // /etc/local.inc includes the mac
一个用于mysql的数据库抽象层函数库_php基础
<?php // // SourceForge: Breaking Down the Barriers to Open Source Development // Copyright 1999-2000 (c) The SourceForge Crew // http://sourceforge.net // // $Id: database.php,v 1.6 2000/04/11 14:17:13 cvs Exp $ // // /etc/local.inc includes the mac
一次编写,随处运行
关于 PHP 的数据库 API 对于不同的数据库有不同的函数,一直以来就有人尝试使用 PHP 的面向对象的功能进行一些封装.其中有比较著名的ADODB,PHPLIB.后来举世瞩目的 PEAR 项目中的 PEAR DB 更是其中的佼佼者.这些用面向对象对数据库 API 进行的封装的包一般称为数据库抽象层. 本文介绍的是 PEAR 中对 PEAR DB 进行融合 Metabase 库的一些优秀功能之后产生的注重效率,而且简单易用,功能非常强大的 MDB 的一个非常好的介绍.作者就是 MDB 的主创人
一次编写,随处运行_php基础
关于 PHP 的数据库 API 对于不同的数据库有不同的函数,一直以来就有人尝试使用 PHP 的面向对象的功能进行一些封装.其中有比较著名的ADODB,PHPLIB.后来举世瞩目的 PEAR 项目中的 PEAR DB 更是其中的佼佼者.这些用面向对象对数据库 API 进行的封装的包一般称为数据库抽象层. 本文介绍的是 PEAR 中对 PEAR DB 进行融合 Metabase 库的一些优秀功能之后产生的注重效率,而且简单易用,功能非常强大的 MDB 的一个非常好的介绍.作者就是 MDB 的主创人
PHP 5 数据对象 (PDO) 抽象层与 Oracle
oracle|对象|数据 一名新 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 5 数据对象 (PDO) 抽象层与 Oracle_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 主要是由志愿者完成的项目:尽管有少数一些固定的"核心"开发人员,但是我们没有一个人在全