一、函数定义和功能
1.mysql_init() 初始化MySQL结构体指针
MYSQL *mysql_init(MYSQL *mysql)
初始化成功返回一个指向MYSQL结构体的指针, 否则返回NULL 。
2.mysql_real_connect() 连接到指定的MySQL服务器
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)
参数列表:
- MYSQL结构体指针,由mysql_init()函数返回。
- MySQL服务器的主机名或IP地址。
- MySQL服务器的用户名。
- MySQL服务器的密码。
- MySQL服务器的数据库名。
- MySQL服务器的端口号,一般为3306。
- Unix套接字文件的路径,可以为空。
- 客户端标志,一般为0。
连接成功返回一个MYSQL连接句柄,否则返回NULL。
3.mysql_query() 使用数据库语句操作数据库
int mysql_query(MYSQL *mysql, const char *query)
该函数需要一个MYSQL连接句柄和一个SQL语句字符串作为参数。执行成功时,返回0,否则返回非0值。
4.mysql_store_result() 存储query语句查询结果
MYSQL_RES *mysql_store_result(MYSQL *mysql)
该函数需要一个MYSQL连接句柄作为参数,并返回一个MYSQL_RES结构体指针。
5.mysql_fetch_row() 获取MYSQL_RES结构体中一行查询结果
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
该函数需要一个MYSQL_RES结构体指针作为参数,并返回一个MYSQL_ROW结构体指针,该结构体指针包含了查询结果中的一行数据。
6.mysql_num_fields() 获取MYSQL_RES(查询结果)中的列数
unsigned int mysql_num_fields(MYSQL_RES *result)
该函数需要一个MYSQL_RES结构体指针作为参数,并返回一个unsigned int类型的值,表示查询结果中的列数。
7.mysql_free_result() 释放MYSQL_RES结构体所占用的内存
void mysql_free_result(MYSQL_RES *result)
该函数需要一个MYSQL_RES结构体指针作为参数,无返回值。
8.mysql_close() 关闭MYSQL连接并释放所占用的内存
void mysql_close(MYSQL *mysql)
该函数需要一个MYSQL结构体指针作为参数,无返回值。
二、MySQL C函数使用实例
#include <mysql.h>
#include <stdio.h>
int main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
unsigned int num_fields;
conn = mysql_init(NULL); // 初始化连接结构体
if (conn == NULL) {
printf("mysql_init() failed\n");
return -1;
}
// 连接目标数据库
if (mysql_real_connect(conn, "localhost", "root", "password", "testdb", 0, NULL, 0) == NULL) {
printf("mysql_real_connect() failed\n");
return -1;
}
// 查询testtable表中的所有数据
if (mysql_query(conn, "SELECT * FROM testtable")) {
printf("mysql_query() failed\n");
return -1;
}
// 存储查询结构
res = mysql_store_result(conn);
// 获取查询结果中有多少列
num_fields = mysql_num_fields(res);
printf("Number of fields: %u\n", num_fields);
// 获取每一行数据并打印
while ((row = mysql_fetch_row(res))) { // 遍历每一行
for(int i = 0; i < num_fields; ++i){ // 遍历每一行中的每一列
printf("%s ", row[i]);
}
printf("\n");
}
// 释放查询结果内存
mysql_free_result(res);
// 关闭连接
mysql_close(conn);
return 0;
}
学习使用C语言操作MySQL的笔记,如果对您有帮助的话可以给个小三连,多谢啦哈哈哈~~