Mysql入门系列:MySQL可用的API
2006-12-31 10:51:52 来源:WEB开发网DBI 体系结构编写应用程序的风格相对普通。当编写DBI 脚本时,可使用一组标准的调用。DBI 级在DBD 级调用适当的驱动程序来处理请求,对于想使用的特定数据库服务器通信中包括的特定问题,由驱动程序处理。DBD 级传送从服务器返回的数据,备份到DBI 级,使
数据出现在应用程序中。数据的格式与数据库的数据来源一致。
其结果得到这样一个接口,该接口从应用程序的编写者的观点隐藏了数据库引擎之间的差异,这样可使用多种不同的引擎——和驱动程序一样多。DBI 通过允许以统一风格访问每个数据库来提供一致性客户接口以增加可移植性。
当打开数据库时,出现由脚本编写的数据库专有的界面。当创建连接时,应指出使用哪个驱动程序。例如,要想使用MySQL数据库,应这样连接:
而要想使用Postgres 或m SQL,应这样连接:
连接以后,对该驱动程序不需要再做任何做特殊的引用。让DBI 和该驱动程序解决数据库专有的细节。
无论如何这都是理论问题。然而,至少有两个因素与DBI 脚本的可移植性矛盾:
■ 在RDBMS 引擎之间SQL 的实现不同,为一个引擎编写的SQL 另一个引擎根本不理解是完全可能的。如果SQL 相当通用,则脚本可在引擎之间作相应的移植。但如果SQL 依赖于引擎,则脚本也是这样。例如,如果使用MySQL指定的SHOW TABLES语句,则该脚本不能用其他数据库执行。
■ DBD 模块通常提供引擎专有类型的信息来允许脚本编写者使用特定数据库系统的特定功能。例如, MySQLDBD 提供访问查询结果中列属性的方法,如每列的最大长度、列是否是数值型的,等等。而这些属性在其他数据库中没有任何相似物。DBD 专有的特性与可移植性相背,通过使用它们,将MySQL编写的脚本用于其他数据库系统是困难的(然而,在第7章中,您将发现,笔者毫不费力地避免了由MySQLDBD 提供的MySQL专有的结构。那是因为您应该知道那些结构是什么,以便可以决定自己是否使用它们)。
更多精彩
赞助商链接