PEAR MDB 数据库抽象层 —— 一次编写—随处运行
时间:2007-12-23 来源:不详 作者:迈克DB
所有的就是这样!users 表现在称为 people 并且我们也有了一个 pwd 域。
我现在要看看 XML schema 格式的最后一个特性。假如你想要编程性的使用治理器,这个特性尤其重要。假设你有好几个有相同验证程序运行在你的服务器的客户。 每个客户有一个服务器运行在这个服务器有相同的 schema 只有微小的区别:的名字。可能为每个客户单独保存 schema 文件是可行的因为更新周期可能不是一样的,这不是我们例子验证程序的情况。这儿所有的客户同时更新。XML schema 文件答应我们为此可以使用变量。
php"><?xml version="1.0" encoding="ISO-8859-1" ?><database><name><variable>name</variable></name></database>本文来自织梦
我们现在在运行时设置变量为任意我们需要的东西。
php">foreach($clients as $name) {$variables = array('name' => $name)$manager->updateDatabase($input_file, $input_file.'.before', $variables);} 内容来自dedecms
XML schema 治理是 MDB 提供的抽象概念的另外一个非常重要的部分。它使得我们保持我们的 schema 定义与特定的 RDBMS 无关。但是使用这个格式还确保了使用正确的原生数据类型因而 MDB 能够正确地映射它的原生数据类型。最后,因为数据是基于 XML 的,编写产生或者读取 XML schema 文件的工具要轻易一些。
听起来不错但是我的应用程序已经使用了……
大部分读者可能发现它们处于这样的境地——他们已经有了大量运行于其他抽象层的程序。由于 MDB 的出身,大部分 PEAR DB 的用户应当发现 MDB 感觉上非常类似,因为 MDB 的 API 是基于 PEAR DB 的。Metabase 用户应当发现他们所有偏爱的功能都在 MDB 中有对应的东西。XML schema 格式和 Metabase 中的是一摸一样的。一个完全的指导来引导你把已经写好的程序移植到 MDB 中超出了本文的范围,但是我将利用这个机会给一些提示。假如你有任何具体的问题,放心的发信来询问我。
为了把你的 PEAR DB 程序移植到 MDB,最好的起点是 PEAR wrapper。你能使用 PEAR wrapper 来运行你的程序。wrapper 当然增加了一些额外负担,因而你可能有些想要移植到原生的接口。那么第一步是列出所有你程序当前使用的 PEAR DB 函数。然后看看 wrapper 从中找出任何 API 上的区别。有两个你要注重的要害区别:结果集不再是对象而且所有的答应你传递结果集的数据类型的查询方法将导致参数顺序上的少许改变。第一个区别意味着不能再结果对象上调用获取函数。
织梦内容管理系统
php">$result = $db->query($sql);$row = $result->fetchRow(); 织梦内容管理系统
你现在必须调用 MDB 对象来进行获取:
php">$result = $mdb->query($sql);$row = $mdb->fetchRow($result);织梦内容管理系统
第二个区别通过观察 wrapper 可以轻易的被解决。如你再 wrapper 中能看到的,你可以再 MDB 期望得到结果集的数据类型的地方简单地传递 NULL。现在,你地程序应当能够使用 MDB。当然,你现在没有真正得到了 MDB 地高级特性优点的益处。这最有可能的是需要对你当前的 schema 进行一些改动。治理器能够尝试反向地从已经存在的中获取 XML schema 文件。一个非常简单的前端可以在 MDB 包中找到:reverse_engineer_xml_schema.
上一篇:Access数据库升迁SQLServer 下一篇:.htaccess文件使用手册
文章评论
共有位Admini5网友发表了评论 查看完整内容