编写一段C语言代码,要求查询MySQL表然后将遍历得到的数据使用发送出去
时间: 2024-12-24 07:31:28 浏览: 15
在C语言中,连接到MySQL数据库并查询数据通常会用到mysqlclient API。这里是一个基本的例子,展示如何使用`libmysqlclient`库执行SQL查询,并将数据发送给服务器:
```c
#include <stdio.h>
#include <mysql.h>
// 定义数据库连接信息
struct db_config {
const char* host;
const char* user;
const char* password;
const char* database;
};
// 连接到数据库
MYSQL* connect_to_db(struct db_config* config) {
MYSQL *conn = mysql_init(NULL);
if (!mysql_real_connect(conn,
config->host,
config->user,
config->password,
config->database,
0, // 默认使用3306端口
NULL, // 默认为空,不需要指定字符集
0)) { // 不检查错误
fprintf(stderr, "Error connecting to MySQL: %s\n", mysql_error(conn));
exit(1);
}
return conn;
}
// 查询并打印数据
void query_and_send_data(MYSQL* conn, const char* query) {
MYSQL_RES* result = mysql_query(conn, query);
if (result == NULL) {
fprintf(stderr, "Error executing query: %s\n", mysql_error(conn));
return;
}
MYSQL_ROW row;
while ((row = mysql_fetch_row(result))) {
int i;
printf("Data: ");
for (i = 0; i < mysql_num_fields(result); ++i) {
printf("%s ", row[i] ? row[i] : "(NULL)");
}
printf("\n");
// 这里只是打印,如果需要发送,你可以根据协议设计将数据封装成适当格式
// 如 JSON、二进制等,然后通过网络套接字发送出去
}
mysql_free_result(result);
}
int main() {
struct db_config config = {
.host = "localhost",
.user = "username",
.password = "password",
.database = "your_database"
};
MYSQL* conn = connect_to_db(&config);
const char* sql = "SELECT * FROM your_table";
query_and_send_data(conn, sql);
mysql_close(conn);
return 0;
}
阅读全文