1.头文件

#include <mysql/mysql.h>

2.gcc链接库文件

gcc a.c -lmysqlclient

3.api汇总

第一部分 控制类函数


mysql_init()初始化MySQL对象

mysql_options()设置连接选项    
//字符集的转换. 要注意, 当汉字写到mysql时设这个选项 就好了,unsinged int  ret = mysql_options(myData, MYSQL_SET_CHARSET_NAME, "gb2312");  不要设就会写进去乱码.

mysql_real_connect()连接到MySQL数据库

mysql_real_escape_string()将查询串合法化

mysql_query()发出一个以空字符结束的查询串

mysql_real_query()发出一个查询串

mysql_store_result()一次性传送结果

mysql_use_result()逐行传送结果

mysql_free_result()释放结果集

mysql_change_user()改变用户

mysql_select_db()改变默认数据库

mysql_debug()送出调试信息

mysql_dump_debug_info()转储调试信息

mysql_ping()测试数据库是否处于活动状态

mysql_shutdown()请求数据库SHUTDOWN

mysql_close()关闭数据库连接

第二部分 信息获取类函数


mysql_character_set_name()获取默认字符集

mysql_get_client_info()获取客户端信息

mysql_host_info()获取主机信息

mysql_get_proto_info()获取协议信息

mysql_get_server_info()获取服务器信息

mysql_info()获取部分查询语句的附加信息

mysql_stat()获取数据库状态

mysql_list_dbs()获取数据库列表

mysql_list_tables()获取数据表列表

mysql_list_fields()获取字段列表

第三部分 行列类操作函数


mysql_field_count()获取字段数

mysql_affected_rows()获取受影响的行数

mysql_insert_id()获取AUTO_INCREMENT列的ID值

mysql_num_fields()获取结果集中的字段数

mysql_field_tell()获取当前字段位置

mysql_field_seek()定位字段

mysql_fetch_field()获取当前字段

mysql_fetch_field_direct()获取指定字段

mysql_frtch_fields()获取所有字段的数组

mysql_num_rows()获取行数

mysql_fetch_lengths()获取行长度

mysql_row_tell()获取当前行位置

mysql_row_seek()行定位

mysql_data_seek()行定位

mysql_fetch_row()获取当前行

第四部分 线程类操作函数



mysql_list_processes()返回所有线程列表

mysql_thread_id()获取当前线程ID

mysql_thread_safe()是否支持线程方式

mysql_kill()杀列一个线程

第五部分 出错处理类函数

mysql_errno()获取错误号
mysql_error()获取错误信息

第六部分 已过时的函数

mysql_connect()     
mysql_create_db()     
mysql_drop_db()     
mysql_eof()    
mysql_reload()    
mysql_escape_string()

4.操作流程

与MySQL交互时,应用程序应使用该一般性原则:

  1. 通过调用mysql_library_init(),初始化MySQL库。库可以是mysqlclient C客户端库,或mysqld嵌入式服务器库,具体情况取决于应用程序是否与“-libmysqlclient”或“-libmysqld”标志链接。
  2. 通过调用mysql_init()初始化连接处理程序,并通过调用mysql_real_connect()连接到服务器。
  3. 发出SQL语句并处理其结果。(在下面的讨论中,详细介绍了使用它的方法)。
  4. 通过调用mysql_close(),关闭与MySQL服务器的连接。
  5. 通过调用mysql_library_end(),结束MySQL库的使用。

1. MYSQL

   要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接

示例:

MYSQL mysql;       //创建MYSQL实例

mysql_init(&mysql);//初始化开始进行连接

2. MYSQL_RES

这个结构代表返回行的一个查询的(SELECT, SHOW, DESCRIBE, EXPLAIN)的结果。返回的数据称为“数据集”。 从数据库读取数据,最后就是从MYSQL_RES中读取数据。

PS:类似于JAVA里面的ResultSet变量一样,将结果集存入到此变量中再从它里面去读数据。

3. MYSQL_ROW

这是一个行数据的类型安全(type-safe)的表示。当前它实现为一个计数字节的字符串数组。行通过调用mysql_fetch_row()获得

4. MYSQL_FIELD

你可以通过重复调用mysql_fetch_field()对每一列获得MYSQL_FIELD结构。这个结构包含字段信息,例如字段名、类型和大小。

PS:此变量定义的是列的相关属性问题!

代码示例见
转 用C API 操作MySQL数据库

api引自c++ mysql 取出数据_C++中使用mysql数据库方法