有没有办法使用列名访问MySQL数据库中的行?
例如,您可以使用类似row[0]
的内容,而不是使用row['authors']
作为第一列。我想直接用C API编程而不用任何包装器,而不是用C ++编写。
感谢您的帮助!
答案 0 :(得分:11)
C并不真正支持关键值数组,例如(我假设您的想法)PHP。您可以获得的最接近的事情是获取列名称的数组,搜索您需要的列名称,并使用该索引。例如:
mysql_query(_MySQLConnection, query);
MYSQL_RES *result = mysql_store_result(_MySQLConnection);
unsigned int num_fields = mysql_num_fields(result);
MYSQL_ROW row;
MYSQL_FIELD *field;
unsigned int name_field;
char *field_name = "name";
char *headers[num_fields];
for(unsigned int i = 0; (field = mysql_fetch_field(result)); i++) {
headers[i] = field->name;
if (strcmp(field_name, headers[i]) == 0) {
name_field = i;
}
}
while ((row = mysql_fetch_row(result))) {
//do something with row[name_field]
printf("Name: %s\n", row[name_field]);
}
mysql_free_result(result);