您好,欢迎访问一九零五行业门户网

MySQL可用的API[组图]_MySQL

5.1mysql可用的api
    为了方便应用程序的开发,mysql提供了用c 编程语言编写的客户机库,它允许从任何c 程序的内部访问mysql数据库。客户机库实现应用程序编程接口( a p i),api 定义客户机程序如何建立和执行与服务器的通信。
    然而,使用c 来编写mysql程序并不受限制。许多其他语言处理器本身也是由c 编写的,或具有使用c库的能力,所以mysql客户机库提供了这个方法,由此, mysql对这些语言的约束可以建立在c api 的上面。这就为与mysql服务器通信而编写应用程序提供了许多选择。客户机程序的api 是用perl、php、java、python、c++、tcl 和其他一些语言编写的。有关最新的清单,请查看mysql参考指南或mysqlweb 站点,因为有时会增加用新语言编写的a p i。
    每种语言约束都定义自己的接口,特别是访问mysql的规则。这里没有足够的时间来讨论mysql可使用的每种a p i,我们只讲述最流行的三种:
    ■ c 客户机库a p i。这是mysql的基本编程接口。
    ■ perl 通用目标脚本语言的dbi(数据库接口) a p i。dbi 是作为与其他模块在db d(数据库驱动程序)级接口的perl 模块来实现的,每个模块都提供对特定类型的数据库引擎的访问(当然,我们将讨论的特定的dbd 模块也提供对mysql的支持)。dbi 对mysql的最普遍用法是编写由命令行来调用的独立的客户机,以及试图由web 服务器调用的脚本来提供web 对mysql的访问。
    ■ php api。php 是一种脚本语言,它提供了在web 页中嵌入程序的一种便利的方法。在发送以前,这样的页面由php来处理,它允许这些脚本生成动态的内容,如在页面中包括mysql查询的结果。“php”原始的意思是个人主页( personal home page),但是php 的成长已经远远超过它简单的原始功能。php web 站点现在使用的这个名称表示“php:超文本预处理程序( hypertext preprocessor)”,它像gnu (是gun而不是unix )一样以同样的方式自我引用。
    使用他人成果
    当标准的mysql客户机不能满足需要时,您并不总是需要编写自己的程序。其他一些人一直编写程序,而这些程序中有许多是可共享得到的。请参阅附录i 中的一些样例。只要找到几个就能节省您的许多工作。
    以上这三种a p i都有专门章节详细说明。本章只提供对api 比较的概述,用来说明它们的基本特征,并给出对特定的应用程序可能选择某个而不是其他api 的原因。
    当然,不必只考虑某个api,应了解每个api,并用可以明智选择适合自己的api。在包括若干组件的大项目中,可能使用多个api,多种语言,这取决于每个子任务适合哪一种语言。
    对于试图使用的任何一种api,如果需要得到必需的软件,请参阅附录a。
    5.1.1c api
    capi 用于编译c 程序上下文环境内部。它是一种客户机库,提供可用来与mysql服务器对话的最低级别的接口――具有创建与服务器通信所需的能力。dbi 和php 的前身dbi 的perl 前身是mysqlperl 模块m y s q l . p m。这个模块不再被支持,而且不应该用于新的mysql的开发。有一件事需要明白,mysqlperl 是依赖于mysql的,但dbi 不是。如果编写mysql的perl 应用程序,然后,决定想用另外一种数据库引擎来使用它们,则移植dbi 脚本比mysqlperl 脚本更容易一些,因为它们很少依赖于特定的数据库引擎。如果获取了访问mysql的一段perl 脚本,并发现它是用mysqlperl 而不是dbi 编写的,则仍然可以使用dbi。dbi 包括了对mysqlperl 的仿真支持,因此不需要安装两个程序包。php 3 的前身是php/fi 2.0 (f i代表“ form interpreter ,即格式解释程序”)。像mysqlperl 一样,php / f i也是过时的,所以我们就不再进一步讨论它了。
  mysqlc api 的起源如果已经有编写msql rdbms 程序的经验,那么将注意到mysqlc api 类似于msql 相应的c api。当mysql的开发者们开始实现他们的sql 引擎时,许多有用的共享实用程序可用于m sql。要想花费最小的难度将那些msql 实用程序移植为mysql的
实用程序是可能的,可有意地将mysqlapi设计为与msql api 类似(mysql甚至带有与msql api 函数名称相应的mysql名称的简单的文本替代品的msql2mysql脚本。这个操作相对烦琐,实际上也照顾了许多涉及为使用mysql而转换msql 程序的工作)。
    mysql分发包提供的c 客户机是基于这个api 的。c 客户机库也作为mysql对其他语言约束的基础来提供服务,但java api 是一个例外。例如,通过连接mysqlc 客户机库代码(这个过程在附录a中通过dbi 和php 安装指导来举例说明),mysql可用perl dbi 模块专有的mysql驱动程序和php 代码。
其它类似信息

推荐信息