PEAR MDB数据库抽象层一次编写—随处运行
时间:2007-12-23 来源:不详 作者:迈克DB
$row = $result->fetchrow();
你现在必须调用 mdb 对象来进行获取: $result = $mdb->query($sql);
$row = $mdb->fetchrow($result);
第二个区别通过观察 wrapper 可以轻易的被解决。如你再 wrapper 中能看到的,你可以再 mdb 期望得到结果集的数据类型的地方简单地传递 null。现在,你地程序应当能够使用 mdb。当然,你现在没有真正得到了 mdb 地高级特性优点的益处。这最有可能的是需要对你当前的 schema 进行一些改动。治理器能够尝试反向地从已经存在的中获取 xml schema 文件。一个非常简单的前端可以在 mdb 包中找到:reverse_engineer_xml_schema.php 脚本。极有可能你将需要手动修正产生的 xml schema 恩见,但是它将给你一个很好的开始。 假如你想要把你已经存在的程序从 metabase 移植到 mdb 你将必须改动所有的函数调用。查看 metabase wrapper 需要改动什么将变得非常明显。假如你知道正则表达式你可能能够完成大部分这样的替换工作。无论如何,你应当向前并且运行你原来喜爱的高级抽象特性但是现在用的是 mdb。你可能注重得到的是函数名变得更加简短了。假如你作一些性能测试,你也将看到可观的性能改善。 内容来自dedecms
那么 mdb 将来会是什么样子呢? 本文发表时 mdb 可能已经不再是原来的 1.0 release 了。在原来的 mysql 和 postgresql 驱动之后,mdb还将有一个 odbc 驱动以及可能的更多的驱动。这是 mdb 开发过程中关注的要害区域之一。一旦 mdb 在驱动方面跟上了 pear db,它很有可能成为 pear 框架中标准的抽象层。 但是还有另外一个开发中的要害领域:mdb_frontend 工程。mdb_frontend将成为基于 mdb 和 mdb 治理器的 phpmyadmin。有了这个工具,你将能够浏览储存在 mdb 支持的 rdbms 中的。mdb_frontend 将同时显示原生和 mdb 数据类型。模拟的特性比如 mysql 中的序列将被隐藏。用户将仅仅看到一个序列列表而不是一个储存序列指的表,而在 mysql 中这就是序列是如何被模拟的。而且 mdb_frontend 将帮助移植已经存在的来符合 mdb 预期使用的原生数据类型。它还将帮助创建和更新 xml schema 文件。一些初期的工作已经完成了但是很多工作需要在公开发布之前被添加。 驱动和 mdb_frontend 是当前开发的所有焦点,在 mdb 中还有许多用户可能需要的:像 bulk 获取 lob 域的集成,其他人可能需要外部和主键支持。如一直以来的那样假如你参与测试和实现,开源的东西将加快很多。但是我也很感谢像特性需求合阳的反馈。
内容来自dedecms
一些文后的思考 在数月的艰辛工作之后,mdb 正在当前的 pear db 和 metabase 用户中获得认可。我还希望当前还没有被其他抽象层说服的用户意识到 mdb 给他们的好处。当然,还是有许多程序需要对 rdbms 进行非凡剪裁,对于这种情况像 mdb 这样的工具仅仅是增加了不必要的额外负担和限制。总的来说,我非常兴奋我们在我们的公司中作出领导 mdb 开发的决定。在起初,我对尝试同时取悦 pear db 和 metabase 的用户但是结果可能到处不讨好多少有些担心。另外一个关心的来源是 php 社区是否将帮助其开发。我非常兴奋 php 社区来了并且帮助撰写驱动以及 mdb 的核心。因而我们认为这个项目是一个极大的成功。我们还一并相信 mdb 将得到更大的改进。而且我们对帮助
文章评论
共有位Admini5网友发表了评论 查看完整内容