2014-09-22 3 views
2

Я новичок в программировании mysql на c. Мне нужно проверить, существует ли какой-либо пользователь в таблице. Как это сделать, используя API C? Вот что у меня есть, но он не работает:MySQL C API: проверьте, существует ли поле

if (mysql_query(con, "SELECT * FROM Users WHERE UserName='user3'")) 
    { 
     finish_with_error(con); 
    }  
    MYSQL_RES *result = mysql_store_result(con); 
    if (result == NULL) 
    { 
     finish_with_error(con); 
    } 
    int count = mysql_field_count(con); 
    printf("%d\n", count); 
+0

В каком виде это происходит? Пожалуйста, укажите соответствующие сообщения об ошибках. –

+1

Проверьте тип 'MYSQL_FIELD' и используйте' mysql_fetch_field', тогда вы можете сделать что-то вроде 'MYSQL_FIELD * field = mysql_fetch_field (result); printf ("% s \ n", field-> name); '[Структуры данных API перечислены здесь] (http://dev.mysql.com/doc/refman/5.1/en/c-api-data-structures .html) –

+0

Я всегда получаю счет '1', с текущим кодом. – Zaxter

ответ

2

Для тех, кто заинтересован, это то, что я написал, используя комментарии, и, наконец, в конечном итоге, используя.

if (mysql_query(con, "SELECT field FROM table WHERE userName='user1'")) 
{ 
    finish_with_error(con); 
} 

MYSQL_RES *result = mysql_store_result(con); 

if (result == NULL) 
{ 
    finish_with_error(con); 
} 

MYSQL_ROW row; 
MYSQL_FIELD *field; 

if (row = mysql_fetch_row(result)) 
{ 
    printf("%s\n", row[0]); 
    db_pwd = row[0]; 
} 
Смежные вопросы