在使用mysql的C API进行SELECT查询时,可以通过调用mysql_fetch_fields()函数获取结果集中每个字段的元数据信息,并且将其作为第一行返回结果。
以下是示例代码:
MYSQL_RES *result; // 查询结果集
MYSQL_ROW row; // 查询结果行
// 执行 SELECT 查询
if (mysql_query(conn, "SELECT id, name, age FROM users")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
// 获取查询结果集
result = mysql_store_result(conn);
// 输出字段名称
MYSQL_FIELD *fields;
unsigned int num_fields;
unsigned int i;
num_fields = mysql_num_fields(result);
fields = mysql_fetch_fields(result);
for(i = 0; i < num_fields; i++) {
printf("%s\t", fields[i].name);
}
printf("\n");
// 输出查询结果
while ((row = mysql_fetch_row(result))) {
for(i = 0; i < num_fields; i++) {
printf("%s\t", row[i] ? row[i] : "NULL");
}
printf("\n");
}
// 释放查询结果集
mysql_free_result(result);
上述代码中,先调用mysql_query()
执行SELECT语句,然后通过mysql_store_result()
获取查询结果集。接着通过mysql_fetch_fields()
获取每个字段的元数据信息,并输出到控制台上。最后通过循环遍历查询结果,并输出到控制台上。