c언어에서 mysql_fetch_array 관련 질문입니다.
글쓴이: shilf / 작성시간: 월, 2005/10/10 - 11:49오전
제가 리눅스 서버에서 c언어로 코딩해서
mysql에 접근하는데요
php에서는 mysql_fetch_array 로 원하는 자료형을 얻어올수 있지 않습니까
C에서는 어떻게 하는지 잘 모르겠습니다.
conn = mysql_init (NULL); if(conn == NULL) conn = mysql_init (NULL); if(conn == NULL) { perror("mysql_init() error"); exit(1); } if(mysql_real_connect (conn, db_host, db_user, db_passwd, db_name, 0, NULL, 0) == NULL ) { perror("mysql_real_connect() error:"); exit(1); } sprintf(buf, "SELECT fid FROM file_info WHERE date < '%d'", date); mysql_query(conn, buf); res = mysql_store_result(conn); while(row = mysql_fetch_row(res)) { remove("/root/data/'row'.dat"); mysql_query(conn, "DELETE FROM file_info WHERE fid = 'row'"); }
mysql_fetch_array는 어떤식으로 사용하는지 궁금합니다
단순히 쿼리를 보내서 하나를 삭제하고 입력하고 이런건 알겠는데
검색해서 배열로 받는것을 못하겠습니다.
php에서는 mysql_fetch_array로 간단히 처리할수 있었는데
c언어에서는 mysql_fetch_array를 제공하지 않습니까?
제공한다면 char*로 받아야 합니까 아니면 배열로?
예시 하나만 들어주세요
부탁드립니다.
리눅스 관련 질문이 아니라 죄송합니다만. 물어볼데가 없습니다.
꼭 좀 도와주세요~
Forums:
네 C 에는 없습니다.아마 fetch_array 의 배열 index
네 C 에는 없습니다.
아마 fetch_array 의 배열 index 에 숫자 대신 문자(필드명)을 사용할 수 있는 능력때문에 찾으시나요?
일단 C에서는 불가능합니다.
배열에 문자열 넣을수 있는건 PHP의 독특한 기능중에 하나이니깐요.
C++ 이라면 [] 연산자에 연산자 오버로딩을 통해서 구현이 가능합니다.
저도 PHP의 방식이 맘에 들어 c++ 로 구현한게 있는데
업무적으로 만든거라 공개할 수 가 없네요
fetch_field 와 fetch_row 를 이용하시면 됩니다.
답변 정말 감사합니다.
답변 감사합니다~ 역시 KLDP가 좋네요~
없는것 가지고 계속 찾아헤맸네요.ㅎㅎ 감사~
제가 원하는건 row[fid]이런식으로 하나씩 불러오면 좋지만
그게 불가능하다면
0,1,2,.. 이런식으로라도 배열로 받을수 없습니까
----------
fid/ date
101 / 165165
102 / 165164
103 / 165165
104 / 165132
--------------
이런식으로 되어있다면 date < 165164 인것을 다 검색해서
지우는 알고리즘을 만들고 싶습니다.
mysql_fetch_row 는 되는겁니까?
C에서 인덱스가 문자열로 안된다면
숫자로라도 몇개까지의 결과가 검색되는지 알수 있습니까?
row[0] row[1] 이런식으로 지우면 될꺼같은데요.
자꾸 이상한 에러만 나네요.
혹시 예시좀 들어주실수 있으세요?
[quote]DELETE FROM file_info where date
로 하면 되는 문제를 왜 그렇게 어렵게 하려고 하시는지요?
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
답변 감사합니다.
답변 감사합니다.
근데 보시면 아시겠지만. (제 설명이 좀 부실했던것 같습니다.)
db 에서 지우는건 쉽습니다. 한줄로 가능하죠
문제는 실제 파일들을 삭제해야하는데요
파일 명이 "fid".dat 로 되어있습니다.
위 예시같으면 1001, 1002 등의 fid를 날리는건 쉬운데
1001.dat, 1002.dat도 같이 지워야하니까
루프를 만들어서 돌릴수밖에 없지 않겠습니까?
정말 c로 mysql접근하니까.. 새삼 php가 그리워집니다. ㅠㅠ
mysql_num_rows() Returns the number of r
mysql_num_rows() Returns the number of rows in a result set.
이함 수를 이용해서 select 된 결과 레코드 수를 알 수 있습니다.
그 다음 위 결과 수 만큼 루프를 돌면서
mysql_fetch_row() Fetches the next row from the result set.
를 통해 각 레코드를 읽어 옵니다.
이때 리턴된 배열을 char** result 라고 한다면
result[0] 에는 select 쿼리의 처음 지정한 필드, result[1]은 두번째
하는 식으로 담겨져 있습니다. (이건 PHP의 mysql_fetch_row 와 동일하죠?)
그 안에 있는 문자열 값이 db 의 내용이므로 이걸 참고 해서 작업하시면 되겠네요.
혹시
http://dev.mysql.com/doc/mysql/en/c-api-function-overview.html
페이지를 못 찾아서 고생하시는 건가요?
답변 감사합니다.
배열을 이중포인터로 받으면 되겠군요.
설마 mysql_num_rows()와 mysql_fetch_row() 사이에
mysql에 삽입되는 경우는 없겟죠.ㅎ
답변 감사합니다.
참고로 이런 질문 여기 안어울리지만.
혹시 activex 제작 배포해보신분 계시나요.
제가 만들어서 인증서까지 해결해서 배포했는데
하나의 CAB 파일 설치시 예/아니오 를 여러번 묻습니다.ㅠㅠㅠㅠ
각 세부적인 모듈이나 폼 등을 따로 설치하는건지
아니면 사용한 윈속, common dailog, mshgrid 등의 구성요소를 따로 포함하는건지
kldp에 올릴 질문이 아닙니다만.
혹시 비주얼베이직 및 activex 대해 잘 아시는분
메일좀 주세요.ㅠㅠ
shilf1@hanmail.net 입니다.
mysql 답변 정말 감사합니다.~
...
서치엔진에서 미친병아리 서비를 찾아보시면 도움이 될 듯하네요.
아마도 '이 코드가 안전하다'는 내용의 코드를 추가하시면
초기에 ActiveX 설치 시 한 번만 물어보겠죠.
코드는 위 사이트에서 찾을 수 있습니다.
댓글 달기