一、准备工作
- 确保MySQL服务运行正常
- 下载Connector/C库
二、库文件结构
- include目录
- lib目录
三、验证库文件
- 示例代码
- 编译命令
四、环境变量设置
五、MySQL接口介绍
- 初始化MySQL
- 连接数据库
- 设置默认字符集
- 发送MySQL命令
- 获取执行结果
- 获取结果行数
- 获取结果列数
- 获取列名
- 获取结果内容
- 关闭MySQL连接
- 事务操作
MySQL C接口使用
准备工作
- 确保MySQL服务运行正常。
- 从MySQL官网下载适合自己平台的Connector/C库。
库文件结构
include
目录包含所有头文件,提供方法声明。lib
目录包含库文件,提供方法实现。
验证库文件
#include <stdio.h>
#include <mysql.h>int main() {printf("mysql client Version: %s\n", mysql_get_client_info());return 0;
}
编译命令:
gcc -o test test.c -I./include -L./lib -lmysqlclient
环境变量设置
export LD_LIBRARY_PATH=./lib
MySQL接口介绍
初始化MySQL
MYSQL *mysql_init(MYSQL *mysql);
示例:
MYSQL *mfp = mysql_init(NULL);
连接数据库
MYSQL *mysql_real_connect(MYSQL *mysql, const char *host,const char *user,const char *passwd,const char *db,unsigned int port,const char *unix_socket,unsigned long clientflag);
设置连接的默认字符集为utf8:
mysql_set_character_set(myfd, "utf8");
发送MySQL命令
int mysql_query(MYSQL *mysql, const char *q);
获取执行结果
MYSQL_RES *mysql_store_result(MYSQL *mysql);
获取结果行数:
my_ulonglong mysql_num_rows(MYSQL_RES *res);
获取结果列数:
unsigned int mysql_num_fields(MYSQL_RES *res);
获取列名:
MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *res);
获取结果内容:
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);
关闭MySQL连接
void mysql_close(MYSQL *sock);
事务操作
my_bool STDCALL mysql_autocommit(MYSQL *mysql, my_bool auto_mode);
my_bool STDCALL mysql_commit(MYSQL *mysql);
my_bool STDCALL mysql_rollback(MYSQL *mysql);
以上笔记涵盖了使用C语言连接MySQL的基本步骤和接口介绍,包括初始化、连接、查询、获取结果和关闭连接等操作。