为了方便应用程序的开发,MySQL提供了用C编程语言编写的客户机库,它允许从任何C程序的内部访问MySQL数据库。客户机库实现应用程序接口(API),API定义客户机程序如何建立和执行与服务器的通信。然而,使用C语言来编写MySQL程序并不受限制。许多其他语言处理器本身也是由C语言编写的,或具有是有C库的能力。所以MySQL客户机库提供了这个方法,由此,MySQL对这些语言的约束可以建立在C API的上面。这就为与MySQL服务器通信而编写应用程序提供了许多选择。客户机程序的API是用Perl、PHP、Java、Python、C++、TCL和其他一些语言编写的。
1、数据类型
MYSQL: 表示对一个数据库连接的句柄,被用于几乎所有的MySQL函数
MYSQL_RES: 代表返回行的一个查询的(SELECT,SHOW,DESCRIBE,EXPLAIN)结果
MYSQL_ROW: 一个行数据的类型安全(type-safe)的表示。当前它实现为一个计数字节的字符串数组。如果字段值可能包含二进制数据,那么就不能将这些数据视为空终止符,因为这样的值可以在内部包含空字节,行通过调用mysql_fetch_row()获得
MYSQL_FIELD: 这个结构包含字段信息,例如字段名、类型和大小。其成员在下面更详细地描述。可以通过重复调用
mysql_fetch_field()对每一列获得MYSQL_FIELD结构。字段值不是这个结构的部分;它们被包含在MYSQL_ROW结构中
MYSQL_FIELD_OFFSET: 一个相对于MySQL字段表的偏移量的类型安全的表示,由mysql_field_seek()使用。偏移量是在一行以内的字段编号,从0开始
my_ulonglong: 用于行编号和mysql_affected_rows()、mysql_num_rows()和mysql_insert_id()。这种类型提供0到1.84e19的一个范围。在一些系统上,试图打印类型my_ulonglong的值将不工作。为了打印这样的值,将它变换到unsigned long并且使用一个%lu答应格式。例如:
printf("Number of rows %lu/n",(unsigned long)mysql_num_rows(result));