C语言操作MySQL数据库常用函数--mysql_init()、mysql_real_connect()、mysql_query()、mysql_store_result()等

4 篇文章 0 订阅

一、函数定义和功能

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的笔记,如果对您有帮助的话可以给个小三连,多谢啦哈哈哈~~

  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想是优秀社畜

您的打赏是对我最大的鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值