[완료] MySQL C API 중 데이터 가져오는 방법
글쓴이: segenny / 작성시간: 수, 2007/04/25 - 8:37오후
^^; 매일 하루도 안빼놓고 질문만 올리네요.. 답변도 감사합니다.
MySQL C API중 다음과 같은 코드가 있습니다.
if (!mysql_real_connect(mysql, /* MYSQL structure to use */ 43 "localhost", /* server hostname or IP address */ 44 "root", /* mysql user */ 45 "", /* password */ 46 "World", /* default database to use, NULL for none */ 47 0, /* port number, 0 for default */ 48 NULL, /* socket file or named pipe name */ 49 CLIENT_FOUND_ROWS /* connection flags */ )) { 50 puts("Connect failed\n"); 51 } else { 52 if (mysql_query(mysql, "SELECT * FROM City LIMIT 10")) { 53 printf("Query failed: %s\n", mysql_error(mysql)); 54 } else { 55 MYSQL_RES *result = mysql_store_result(mysql); 56 57 if (!result) { 58 printf("Couldn't get results set: %s\n", mysql_error(mysql)); 59 } else { 60 MYSQL_ROW row; 61 int i; 62 unsigned int num_fields = mysql_num_fields(result); 63 64 while ((row = mysql_fetch_row(result))) { 65 for (i = 0; i < num_fields; i++) { 66 printf("%s, ", row[i]); 67 } 68 putchar('\n'); 69 } 70 71 mysql_free_result(result); 72 } 73 } 74 } 75 76 mysql_close(mysql); 77 78 return EXIT_SUCCESS;
위 샘플 소스에는 row[i] 값을 배열로 가져오는데 만약에 가져오는 값이 데이터베이스의 int형이라면
바로 int 형으로 가져올 방법이 없나요? 모든 데이터를 저렇게 가져와서 형변환을 시켜야 하는건가요??
atoi 관련해서 또올리네요.. ㅠㅠ;
Forums:
방법이 없는걸로
방법이 없는걸로 알고 있습니다. 예를들어 API 입장에서 봤을때 DB 테이블에 필드가 4개가 있는데, varchar, int, int, varchar 순서인지 int, int, int, varchar 순서로 있는지 모르는 상태에서 row에 대한 타입을 제공해야 하니 모든걸 문자열로 처리하는 방법뿐이겠죠.
======================
BLOG : http://superkkt.com
======================
BLOG : http://superkkt.com
답변 감사합니다, 그러면..
문자열을 atoi로 변환해서 사용해야 하는건가요??
매일(거의) 블로그에서 좋은정보를 많이 얻었는데 이렇게 답변을 주시니.
고맙습니다.
그 숫가락으로.. 식사도 하시나요?ㅋㅋ
안된다고 하지말고 아니라고 하지말고 어떻게~!
된다!고요~~
이제껏 저는 물안경 잡아당기는 것으로 봤습니다.
숟가락이었군요.
-_-;
완료된 질문이긴
완료된 질문이긴 합니다만... 가능합니다.
prepared statement 방식을 사용하면 됩니다. 이 페이지에서는 예제도 있다는 소문이...
보면 느끼시겠지만 코딩하기가 상당히 번거로울 수 있습니다.
----
$PWD `date`
$PWD `date`
아..이런 방법이
아..이런 방법이 있었군요. 메뉴얼 볼때도 statement 쪽은 뭔지 궁금하면서도 한번도 읽어본적이 없는데. 이런거였군요. 그런데 코드가 대략 난감이군요. 저는 그냥 타입 변환해서 쓰는 쪽에 한표~
======================
BLOG : http://superkkt.com
======================
BLOG : http://superkkt.com
댓글 달기