This Domain(Admin5.com) is for Sale:

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

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

连接以后,对该驱动程序不需要再做任何做非凡的引用。让DBI 和该驱动程序解决数据库专有的细节。
无论如何这都是理论问题。然而,至少有两个因素与DBI 脚本的可移植性矛盾:
■ 在RDBMS 引擎之间SQL 的实现不同,为一个引擎编写的SQL 另一个引擎根本不理解是完全可能的。假如SQL 相当通用,则脚本可在引擎之间作相应的移植。但假如SQL 依靠于引擎,则脚本也是这样。例如,假如使用MySQL 指定的SHOW TABLES语句,则该脚本不能用其他数据库执行。
■ DBD 模块通常提供引擎专有类型的信息来答应脚本编写者使用特定数据库系统的特定功能。例如, MySQL DBD 提供访问查询结果中列属性的方法,如每列的最大长度、列是否是数值型的,等等。而这些属性在其他数据库中没有任何相似物。DBD 专有的特性与可移植性相背,通过使用它们,将MySQL 编写的脚本用于其他数据库系统是困难的(然而,在第7章中,您将发现,笔者毫不费力地避免了由MySQL DBD 提供的MySQL 专有的结构。那是因为您应该知道那些结构是什么,以便可以决定自己是否使用它们)。
尽管存在数据库专有脚本的这两个因素,但以抽象方式提供数据库访问的DBI 机制是完成可移植性的合理方式,只要您决定利用它多少次即可。
5.1.3 PHP API 织梦内容管理系统
像Perl 一样,PHP 也是一种脚本语言。但它与Perl 不同,PHP 很少作为通用目标语言来设计,而是作为编写Web 应用程序的一种语言。PHP API 主要作为在Web 页面中嵌入可执行脚本的一种方法来使用。这使Web 的开发者们很轻易用动态生成上下文环境来编写页面。
当客户浏览器向Web 服务器发送
PHP 页面的请求时,PHP 执行在该页面中它所发现的任何脚本,并用脚本的输出来替换它。该结果再送回浏览器。这就使浏览器中实际出现的页面根据请求的页面环境的不同而有所不同。例如,当在Web 页面中嵌入下面简短的PHP 脚本时,它出现所请求页面的主机I P地址:

可以使用脚本为访问者提供基于数据库上下文环境的最新信息。下面的样例说明可用于Historical League Web 站点的一个简单脚本。该脚本发布一个请求来确定当前的League 的成员数目,并将该数目报告给访问该站点的人(假如出现错误,则该脚本不报告任何数目): 织梦内容管理系统

DBI和DBD的含义
尽管DBI 级是独立于数据库的,而DBD 级是依靠于数据库的,但那并不是“ DBI”和“DBD”所代表的意义。它们的意思是“数据库接口”和“数据库驱动程序”。
PHP 脚本通常看起来像是带有嵌入在“ <?p h p”和“?>”标识符中的脚本的HTML 页面。一个页面可能包括若干个脚本。这为脚本的开发提供了一种非常灵活的方法。例如,假如您喜欢,可以编写一个正常的HTML 页面来创建通用的页面框架,然后再增加脚本的内
容。
对于不同的数据库引擎,
PHP 对统一的接口不再作任何事情, DBI 也用这种方法。取而代之,每个引擎的接口看起来非常像相应的实现该引擎低级API 的C 库接口。例如,用于从

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

文章评论

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

24小时热门信息