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