выберите более одной строки - PullRequest
0 голосов
/ 11 марта 2011
void BaseMySQL::QueryArray(char *InQuery,std::string outResult[])
{
    query_state = mysql_query(con, InQuery);
    if (query_state !=0) {
    printf("%s",mysql_error(con));
    }
     res = mysql_store_result(con);
     m_fields = (WORD)mysql_num_fields(res);
    while((row = mysql_fetch_row(res))!= NULL) {
        for(int i = 0; i < m_fields; i++)
        {
            outResult[i]=row[i];
        }
    }
    mysql_free_result(res);
}

как работает эта функция, скажем, у меня есть аккаунт на 1000, а мой запрос

"выберите идентификатор, имя, пароль от учетной записи"

моя функция просто выдаст мне 1-й ряд, как если бы я использовал std::string acc[20];//array

так

id=acc[0];
name=acc[1];
password=acc[2];

но мой вопрос, который я не могу понять, как я могу выбрать все строки и использовать его?

1 Ответ

0 голосов
/ 11 марта 2011
row = mysql_fetch_row(res);
while(row) 
{
    for(int i = 0; i < m_fields; i++)
    {
        outResult[i]=row[i];
    }
    row = mysql_fetch_row(res);
}

Измените свою функцию следующим образом.Это работает для меня.

...