2013-12-22 3 views
0

Я пытаюсь получить имена столбцов моей таблицы. Я использую этот код:C++ MySQL - Не удалось получить имена столбцов

MYSQL_RES *res_set; 
    MYSQL_ROW row; 

    string query = "SHOW COLUMNS FROM `data`"; 

    mysql_query(this->_connect, query.c_str()); 
    res_set = mysql_store_result(this->_connect); 

    if(mysql_num_rows(res_set) == 0){ 
     printf("> error. mysql did not return any rows for the given player name.\n"); 
    } 

    row = mysql_fetch_row(res_set); 

    cout << row[4]; 

Первый столбец в строке - это корр. Но следующие (здесь «4») - это что-то вроде char(255).

Что я делаю неправильно?

+0

Если я не ошибаюсь, SHOW ничего не имеет в MySQL. Попробуйте SELECT, если вы читали об этом. – Asim

+1

@AsimAwan: команда 'SHOW' возвращает данные о столбцах. Команда SELECT возвращает данные из столбцов. См. Также команду 'DESCRIBE', как в' DESCRIBE data; ' –

ответ

0

Не используйте одинарные кавычки вокруг имени таблицы:

SHOW COLUMNS FROM data; 

Я настоятельно рекомендую вам открыть окно MySql Monitor. Если вы сомневаетесь, введите там команды для проверки.

Перед отправкой команды я использую отладчик и точку останова. Я копирую текст из команды и вставляю в окно монитора MySQL для проверки.

Edit 1: ОПИСАТЬ Команда
Вы можете также использовать ОПИСАТЬ команду:

DESCRIBE data; 

Edit 2: Получение значения из столбца
Если я неправильно понял вас, извлекая данные из столбца использует команду SELECT:

SELECT column1 
FROM data; 
Смежные вопросы