2013-07-03 15 views
1

아래 MySQL 쿼리가 있는데, MySQL 콘솔에서 올바른 결과가 표시됩니다. 그러나 결과를 내 C 프로그램의 변수에 저장하는 방법을 알 수는 없습니다. 어떻게 MySQL 쿼리 결과를 변수에 저장합니까?

+----+ 
| id | 
+----+ 
| 1 | 
+----+ 

내가 변수에에 저장 '1'의 위의 값이 필요합니다

mysql> SELECT id FROM Stations where name = 'AE0'; 

이 그것을 반환 것입니다 : 여기

내가 MySQL의 인터페이스에 입력하는 코드입니다 내 C 프로그램. MySQL의 쿼리는이 코드를 사용하여 내 C 프로그램에서 호출됩니다

MYSQL_RES *result; 
MYSQL_ROW row; 
length=sprintf(query,"SELECT id FROM Stations where name ='AE0'"); 
myquery(conn,query,length); 
result=mysql_store_result(conn); 
row=mysql_fetch_row(result); 

내가 찾고 값이 '결과'에 저장되어 있다면 어떻게 내가 할 수있는, 그것이 여부, 확실 해요 그것을 찾아서 정수로 저장 하시겠습니까?

답변

5

짧은 대답 :

int i = atoi(row[0]); 

긴 대답 :

http://dev.mysql.com/doc/refman/5.0/en/mysql-fetch-row.html

는 MYSQL_ROW를 돌려줍니다. 그런 다음 행을 반복하여 각 값을 가져와야합니다. 이러한 값은 문자열이므로 atoi()을 사용하여 int로 변환해야합니다. 위의 링크에서 뻔뻔하게 도난당한 아래 코드 (atoi() 전화 제외)에서 확인할 수 있습니다.

MYSQL_ROW row; 
unsigned int num_fields; 
unsigned int i; 

num_fields = mysql_num_fields(result); 
while ((row = mysql_fetch_row(result))) 
{ 
    unsigned long *lengths; 
    lengths = mysql_fetch_lengths(result); 
    for(i = 0; i < num_fields; i++) 
    { 
     printf("[%.*s] ", (int) lengths[i], 
       row[i] ? row[i] : "NULL"); 
    } 
    printf("\n"); 
} 
관련 문제