Mysql入门系列:在MYSQL中如何使用API
2006-12-31 10:51:49 来源:WEB开发网PHP 没有同样程度的外部支持(这并不令人惊奇,因为它是较新的语言)。也许所知道的最佳的附加软件是PHP基本库( PHP Base Library,PHP LIB)。根据名称和口令机制的一些排序,假设您正在编写需要限定只有经授权的用户才可以对某个Web 页面访问的Web 应用程序。可以用任意语言编写对它的支持程序,但是如果使用PHP L I B,则不必花费时间重新做这件事情。PHP L I B提供确认并且允许通过会话跟踪经授权的用户(从作为单个逻辑访问部分的给定客户机中连续页面的命中)。还可以分配给用户许可权,这允许您进行像定义具有更多权限的管理用户的工作。
5.2.4 可移植性
可移植性的问题与为访问MySQL引擎所编写的程序怎样才能容易地修改为使用不同引擎的程序有关。您可能不担心这个事情。然而,除非可以预知未来,否则,说“除了MySQL以外,我永远都不会将这个程序用在任何其他的数据库上”可能有些冒险:假设您找到另一
份工作,并想使用自己的旧程序,但您的新老板使用不同的数据库系统呢?如果可移植性是需要优先考虑的事情,则应该考虑在API 之间的区别:
■ DBI API的可移植性最好,因为它独立于数据库是DBI 设计的一个明确目标。
■ PHP 的可移植性稍差,因为它不提供对DBI 提供的各种数据库引擎的同样类型的统一接口。对每个支持数据库的PHP 函数的调用类似于在相应的基础C API 中的那些。稍有一些不同,但很少,需要更改您调用的数据库相关函数的名称。还有可能要修改一点应用程序的逻辑,因为不同数据库的借口并不都是以同样的方式工作的。
■ C API 提供的数据库之间的可移植性最差。因为它生来就是为MySQL设计的。当需要在同一个应用程序中访问多个数据库系统时,独立于数据库的可移植性特别重要。这可能包括像将数据从一个RDBMS 移动到另一个RDBMS 中的简单任务,或更复杂的任务,如基于从许多数据库系统中得到的信息生成报告。
DBI 和PHP 都提供对访问多个数据库引擎的支持,所以对不同的数据库,甚至在不同的主机上,都可以很容易地同时连接到服务器上。然而, DBI 和PHP 在对于从多个异构数据库系统中检索和处理数据的任务的适宜性方面有所不同。而DBI 更好些,因为无论使用哪种数据库,它都使用一组单独的访问调用。假设想在MySQL、mSQL 和Postgres 数据库之间传送数据。使用DBI,则使用这三种数据库的惟一不同之处在于用于连接到每个服务器的DBI -> connect( )调用。而用PHP时,可能需要有更复杂的脚本,该脚本将含有三组读取调用和三组写入调用。
多数据库应用程序的一个极好的例子是MySQL分发包中的crash-me 脚本,它可测试许多不同的数据库服务器的能力。该脚本是用DBI编写的,对于这样的应用程序,这种选择是很明显的,因为您可以同样的方式访问所有的数据库。
更多精彩
赞助商链接