MySQL C API - Доступ к строкам по имени столбца - PullRequest
4 голосов
/ 06 февраля 2011

Есть ли способ получить доступ к строкам в базе данных MySQL, используя их имя столбца?

Например, вместо использования row[0] для первого столбца, вы должны использовать что-то вроде row['authors']. Я хочу программировать напрямую с C API без каких-либо оболочек, а не на C ++.

Спасибо за вашу помощь!

1 Ответ

11 голосов
/ 06 февраля 2011

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...