unsigned int num_fields = mysql_num_fields(res);
MYSQL_FIELD * fields = mysql_fetch_fields(res);
for( unsigned int i = 0; i < num_fields; i++)
{
printf( "col:%d, name:%s, type:%d \n", i, fields[i].name, fields[i].type );
}当我的数据库中第一列是varchar型,第二列也是varchar型时的输出:col:0, name:account, type:253
col:1, name:data, type:18838320 是一个未定义mysql type类型,如何得到每一列的类型呢?
MYSQL_FIELD * fields = mysql_fetch_fields(res);
for( unsigned int i = 0; i < num_fields; i++)
{
printf( "col:%d, name:%s, type:%d \n", i, fields[i].name, fields[i].type );
}当我的数据库中第一列是varchar型,第二列也是varchar型时的输出:col:0, name:account, type:253
col:1, name:data, type:18838320 是一个未定义mysql type类型,如何得到每一列的类型呢?
select COLUMN_NAME,COLUMN_TYPE from COLUMNS where TABLE_NAME='aa'
看看结果
MYSQL_TYPE_TINY |TINYINT field
MYSQL_TYPE_SHORT |SMALLINT field
MYSQL_TYPE_LONG |INTEGER field
MYSQL_TYPE_INT24 |MEDIUMINT field
MYSQL_TYPE_LONGLONG |BIGINT field
MYSQL_TYPE_DECIMAL |DECIMAL or NUMERIC field
MYSQL_TYPE_NEWDECIMAL |Precision math DECIMAL or NUMERIC
MYSQL_TYPE_FLOAT |FLOAT field
MYSQL_TYPE_DOUBLE |DOUBLE or REAL field
MYSQL_TYPE_BIT |BIT field
MYSQL_TYPE_TIMESTAMP |TIMESTAMP field
MYSQL_TYPE_DATE |DATE field
MYSQL_TYPE_TIME |TIME field
MYSQL_TYPE_DATETIME |DATETIME field
MYSQL_TYPE_YEAR |YEAR field
MYSQL_TYPE_STRING |CHAR or BINARY field
MYSQL_TYPE_VAR_STRING |VARCHAR or VARBINARY field
MYSQL_TYPE_BLOB |BLOB or TEXT field (use max_length to determine the maximum length)
MYSQL_TYPE_SET |SET field
MYSQL_TYPE_ENUM |ENUM field
MYSQL_TYPE_GEOMETRY |Spatial field
MYSQL_TYPE_NULL |NULL-type field
MYSQL_TYPE_SHORT, MYSQL_TYPE_LONG,
MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE,
MYSQL_TYPE_NULL, MYSQL_TYPE_TIMESTAMP,
MYSQL_TYPE_LONGLONG,MYSQL_TYPE_INT24,
MYSQL_TYPE_DATE, MYSQL_TYPE_TIME,
MYSQL_TYPE_DATETIME, MYSQL_TYPE_YEAR,
MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR,
MYSQL_TYPE_BIT,
MYSQL_TYPE_NEWDECIMAL=246,
MYSQL_TYPE_ENUM=247,
MYSQL_TYPE_SET=248,
MYSQL_TYPE_TINY_BLOB=249,
MYSQL_TYPE_MEDIUM_BLOB=250,
MYSQL_TYPE_LONG_BLOB=251,
MYSQL_TYPE_BLOB=252,
MYSQL_TYPE_VAR_STRING=253,
MYSQL_TYPE_STRING=254,
MYSQL_TYPE_GEOMETRY=255};
MYSQL_FIELD * fields = mysql_fetch_fields(res); for( unsigned int i = 0; i < num_fields; i++)
{
printf( "col:%d, name:%s, type:%d \n", i, fields[i].name, fields[i].type );
} 当我的数据库中第一列是varchar型,第二列也是varchar型时的输出: col:0, name:account, type:253
col:1, name:data, type:18838320 是一个未定义mysql type类型,如何得到每一列的类型呢?
呵呵,谢谢大家的回答,不过我还是不明白我这样写为什么会出错呢?