以下是一个简单的示例代码,使用C语言和MySQL C API实现了从数据库中分页查询指定的字段。

#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>

// 数据库连接信息
#define DB_HOST     "localhost"
#define DB_USER     "root"
#define DB_PASSWORD "password"
#define DB_NAME     "test"

// 分页查询函数
void paginate_query(MYSQL *conn, const char *query, int page_num, int page_size) {
    char limit_clause[50];
    sprintf(limit_clause, "LIMIT %d, %d", (page_num - 1) * page_size, page_size);
    
    char full_query[500];
    snprintf(full_query, sizeof(full_query), "%s %s", query, limit_clause);

    if (mysql_query(conn, full_query)) {
        fprintf(stderr, "MySQL query error: %s\n", mysql_error(conn));
        return;
    }

    MYSQL_RES *result = mysql_store_result(conn);
    if (result == NULL) {
        fprintf(stderr, "MySQL store result error: %s\n", mysql_error(conn));
        return;
    }

    int num_fields = mysql_num_fields(result);

    MYSQL_ROW row;
    while ((row = mysql_fetch_row(result))) {
        for (int i = 0; i < num_fields; i++) {
            printf("%s ", row[i] ? row[i] : "NULL");
        }
        printf("\n");
    }

    mysql_free_result(result);
}

int main() {
    MYSQL *conn = mysql_init(NULL);
    if (conn == NULL) {
        fprintf(stderr, "MySQL init error\n");
        return 1;
    }

    if (mysql_real_connect(conn, DB_HOST, DB_USER, DB_PASSWORD, DB_NAME, 0, NULL, 0) == NULL) {
        fprintf(stderr, "MySQL connection error: %s\n", mysql_error(conn));
        return 1;
    }

    const char *query = "SELECT SRC_IP, SRC_MAC, DST_IP, DST_PORT, PROTO FROM test";
    int page_num = 1;
    int page_size = 10;

    paginate_query(conn, query, page_num, page_size);

    mysql_close(conn);

    return 0;
}

请确保已安装MySQL C API库,并根据实际情况修改数据库连接信息(主机名、用户名、密码和数据库名)。在上述示例代码中,paginate_query函数接收要执行的查询、页码和每页的行数,然后使用LIMIT子句进行分页查询,并将结果打印到控制台

linux cc++ 实现SELECT SRC_IP SRC_MAC DST_IP DST_PORT PROTO FROM test; 分页查询 数据库是mysql。给出实现代码

原文地址: https://www.cveoy.top/t/topic/hZxD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录