从mysql存储数据

从mysql存储数据,mysql,c,data-structures,struct,Mysql,C,Data Structures,Struct,我需要社区的建议。我需要将mysql中的数据存储在某个地方,以便以后可以比较数据。我试图将所有内容都放在struct中,但我意识到struct是在循环之后进行的,并且我无法创建结构名称为变量的结构。像这样: struct Columns (variable); 所以基本上我需要存储字段、类型、键等列信息。。我不知道会有多少桌子。 我的结构: struct Columns { char field[1000]; char type[50]; char null[10]; char key

我需要社区的建议。我需要将mysql中的数据存储在某个地方,以便以后可以比较数据。我试图将所有内容都放在struct中,但我意识到struct是在循环之后进行的,并且我无法创建结构名称为变量的结构。像这样:

struct Columns (variable);
所以基本上我需要存储字段、类型、键等列信息。。我不知道会有多少桌子。 我的结构:

struct Columns {
char  field[1000];
char  type[50];
char  null[10];
char  key[20];
char  defaul[50];
char  extra[50];
};
代码部分:

 if (mysql_query(conn, "Show tables;")){
    fprintf(stderr, "%s\n", mysql_error(conn));
    exit(1);
}
res = mysql_store_result(conn);

printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL){
    printf("%s\n", row[0]);
    sprintf(str, "Show columns from %s;", row[0]); //row[0]-is table names

    sprintf(str1, "lentele_%s", row[0]);
    printf("%s\n", str1);

    struct Columns str1;

    if (mysql_query(conn, str)){
        fprintf(stderr, "%s\n", mysql_error(conn));
        exit(1);
    }

    res2 = mysql_use_result(conn);

    while ((row2 = mysql_fetch_row(res2)) != NULL){

        strcpy(str1.field, row2[0]);

        printf("Belekas Column field %s\n", str1.field);
    }
每个表上有6列:field | | type | | null | | | key | | default | | extra


正如我所说的,我需要这些数据以便以后比较。

为什么在for循环中声明了结构,如果希望在结构中存储多条记录,那么为什么不使用结构数组?您希望保存数据,以便以后能够访问它。无论从何处获取数据,您只需将其保存在正确的范围内就可以了听起来好像您需要一个
列数组
。它可能应该是动态分配的(
malloc
),这样当数据库中的行数超过数组的初始大小时,它就可以增长(
realloc
)。