linux cc++ mysql sql语句SELECT abc FROM bo_eu_firewall_network_available;使用分页查询每次查询100条数据回来要求函数封装好给出实现代码
以下是一个封装好的函数,用于在Linux C/C++中使用MySQL进行分页查询,并每次返回100条数据。
#include <mysql/mysql.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义MySQL连接信息
#define DB_HOST "localhost"
#define DB_USER "root"
#define DB_PASS "password"
#define DB_NAME "database"
// 定义每页返回的数据量
#define PAGE_SIZE 100
// 定义查询语句
#define SELECT_QUERY "SELECT a,b,c FROM bo_eu_firewall_network_available LIMIT %d, %d"
void queryData(int offset) {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
// 初始化MySQL连接
conn = mysql_init(NULL);
// 连接到数据库
if (!mysql_real_connect(conn, DB_HOST, DB_USER, DB_PASS, DB_NAME, 0, NULL, 0)) {
fprintf(stderr, "Error: %s\n", mysql_error(conn));
exit(1);
}
// 构建查询语句
char query[100];
snprintf(query, sizeof(query), SELECT_QUERY, offset, PAGE_SIZE);
// 执行查询
if (mysql_query(conn, query)) {
fprintf(stderr, "Error: %s\n", mysql_error(conn));
exit(1);
}
// 获取查询结果
res = mysql_use_result(conn);
// 遍历结果集并输出数据
while ((row = mysql_fetch_row(res)) != NULL) {
printf("%s\t%s\t%s\n", row[0], row[1], row[2]);
}
// 释放结果集
mysql_free_result(res);
// 关闭数据库连接
mysql_close(conn);
}
int main() {
int offset = 0;
int totalRecords = 0;
// 初始化MySQL连接
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, DB_HOST, DB_USER, DB_PASS, DB_NAME, 0, NULL, 0)) {
fprintf(stderr, "Error: %s\n", mysql_error(conn));
exit(1);
}
// 查询总记录数
if (mysql_query(conn, "SELECT COUNT(*) FROM bo_eu_firewall_network_available")) {
fprintf(stderr, "Error: %s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
if ((row = mysql_fetch_row(res)) != NULL) {
totalRecords = atoi(row[0]);
}
mysql_free_result(res);
mysql_close(conn);
// 分页查询数据
while (offset < totalRecords) {
queryData(offset);
offset += PAGE_SIZE;
}
return 0;
}
在使用之前,请将DB_HOST、DB_USER、DB_PASS和DB_NAME替换为自己的数据库连接信息。另外,这里假设数据库中的表名为bo_eu_firewall_network_available,并且表中的字段为a、b和c。
这个程序会首先查询总记录数,然后根据每页返回的数据量进行分页查询,直到查询完所有数据为止。每次查询100条数据,并将每条数据的字段值打印出来
原文地址: http://www.cveoy.top/t/topic/hZMf 著作权归作者所有。请勿转载和采集!