This Domain(Admin5.com) is for Sale:

My SQL数据库实用技术(27)

时间:2007-12-23  来源:不详  作者:迈克DB

假如获取了访问MySQL 的一段Perl 脚本,并发现它是用Mysqlperl 而不是DBI 编写的,则仍然可以使用D B I。DBI 包括了对Mysqlperl 的仿真支持,因此不需要安装两个程序包。PHP 3 的前身是PHP/FI 2.0 (F I代表“ form interpreter ,即格式解释程序”)。像Mysqlperl 一样,P H P / F I也是过时的,所以我们就不再进一步讨论它了。
MySQL C API 的起源假如已经有编写mSQL RDBMS 程序的经验,那么将注重到MySQL C API 类似于mSQL 相应的C API。当MySQL 的开发者们开始实现他们的SQL 引擎时,许多有用的共享实用程序可用于m S Q L。要想花费最小的难度将那些mSQL 实用程序移植为MySQL 的
实用程序是可能的,可有意地将MySQL API设计为与mSQL API 类似(MySQL 甚至带有与mSQL API 函数名称相应的MySQL 名称的简单的文本替代品的msql2mysql 脚本。这个操作相对烦琐,实际上也照顾了许多涉及为使用MySQL 而转换mSQL 程序的工作)。
MySQL 分发包提供的C 客户机是基于这个API 的。C 客户机库也作为MySQL 对其他语言约束的基础来提供服务,但Java API 是一个例外。例如,通过连接MySQL C 客户机库代码(这个过程在附录A中通过DBI 和
PHP 安装指导来举例说明),M y S Q L可用Perl DBI 模块专有的MySQL 驱动程序和PHP 代码。 内容来自dedecms
5.1.2 Perl DBI API
DBI API 用于Perl 脚本语言编写的应用程序的上下文环境内部。这种API 在我们考虑的这三种API 结构中是最高的,因为它可与许多数据库工作,而同时在脚本中可忽略许多特定数据库的细节。DBI 经过使用两级结构的Perl 模块来实现(请参阅图5 - 1):
■ DBI (数据库接口)级。为客户机脚本提供接口。这个级别提供的是抽象接口,并不是指特定数据库引擎。
■ DBD (数据库驱动器)级。在这个级别由特定引擎的驱动程序来提供对各种数据库引擎的支持。

MySQL 对DBI 的支持环境由Msql - Mysql - modules分发包提供。这个模块在DBD 级操作。可以从分发包名称及图5 - 1中分辨它,一个驱动程序可以提供对一个以上的RDBMS 的支持。Msql-Mysql-Modules 最初是为mSQL 而编写的,后来扩展到M y S Q L。这种影响类似于对mSQL 和MySQL 的CAPI。由于设计的MySQL CAPI 类似于mSQL CAPI,所以将mSQL DBD(使用mSQL C API)扩展到对MySQL 的使用很有意义。
DBI 体系结构编写应用程序的风格相对普通。当编写DBI 脚本时,可使用一组标准的调用。DBI 级在DBD 级调用适当的驱动程序来处理请求,对于想使用的特定数据库服务器通信中包括的特定问题,由驱动程序处理。DBD 级传送从服务器返回的数据,备份到DBI 级,使

织梦内容管理系统


数据出现在应用程序中。数据的格式与数据库的数据来源一致。
其结果得到这样一个接口,该接口从应用程序的编写者的观点隐藏了数据库引擎之间的差异,这样可使用多种不同的引擎——和驱动程序一样多。DBI 通过答应以统一风格访问每个数据库来提供一致性客户接口以增加可移植性。
当打开数据库时,出现由脚本编写的数据库专有的界面。当创建连接时,应指出使用哪个驱动程序。例如,要想使用MySQL 数据库,应这样连接:

而要想使用Postgres 或m S Q L,应这样连接:

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息