这里给出获取表的结构的API。把表的字段描述作为列的形式,动态地显示。
-
在前面的mysql的连接中,提到一个参数是是否返回表的结构信息。可以通过
mysql_options
来关闭。使用的关键字为:MYSQL_OPT_OPTIONAL_RESULTSET_METADATA(argument type: bool *)
MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result)
//第一种方法下,一般使用循环迭代的方法获得字段
MYSQL_FIELD *field = 0;
while((field = mysql_fetch_field(result)))
{
printf("field name %s\n",field->name);
}
unsigned int mysql_num_fields(MYSQL_RES *result)
MYSQL_FIELD *mysql_fetch_field_direct(MYSQL_RES *result, unsigned int fieldnr)
//第二种情况下,通过获取字段数,再用下标的形式访问出来
unsigned int num_fields = mysql_num_fields(result);
for(int i=0; i<num_fields; i++)
{
field =mysql_fetch_field_direct(result,i);
printf("Field %u is %s\n",i,field->name);
}
MYSQL_FIELD
是一个结构体,里面有表结构的各项参数