1. 형식: result= mysql_fetch_row(myres_ptr)
2. 기능: 인자 myres_ptr의 임시 저장된 결과 자료에서 한 레코드씩 순차적으로 읽어
배열로 항목의 값을 얻는다.
3. 설명
(1) 이 함수는 MySQL에서 지원하는 함수이며 함수명은 MySQL의 C API와 동일하다.
(2) 인자 myres_ptr은 MySQL result 포인터이며 mysql_store_result()함수나 기타
결과를 저장하는 함수에 의하여 얻은 값이고 MySQL result 포인터가 아니면
에러 처리되며, 이미 해제된 MySQL result 포인터일 때에는 경고 메시지를
출력하고 result에 -1 의 값을 되돌린다.
(3) myres_ptr에 대한 항목의 값이 배열로 result에 돌려진다.
(4) result의 값이 정수 -1(MYSQL_ERR)이면 에러가 발생한 경우이다.
4. 사용예
// 아래 프로그램은 MySQL 서버가 정상 작동하지 않거나 또는 welhelp 라는
// 데이터베이스가 없거나 addr 이라는 테이블이 없으면 에러가 발생한다.
mysql= mysql_connect(NULLL, myuser, mypass); // localhost에 연결함
if(mysql==MYSQL_ERR) { print("MySQL 서버 연결 에러!\n"); return(-1); }
if(mysql_select_db(mysql, "welhelp")==MYSQL_ERR) // welhelp database 선택
{
print("welhelp database 선택 에러!\n"); return(-1);
}
query= "select * from addr"; // addr 테이블의 모든 항목을 선택
if(mysql_query(mysql, query)==MYSQL_ERR)
{
print("query error!!\n"); return(-1);
}
myres= mysql_store_result(mysql); // 추출된 자료를 저장하고 포인터를 돌려줌
row_count= mysql_num_rows(myres); // 추출된 자료의 레코드 개수 얻기
field_count= mysql_num_fields(myres); // 추출된 자료의 항목 개수 얻기
mysql_data_seek(myres, 1); // 2번째 레코드로 이동한다.
row_count-= 1; // 추출된 레코드의 개수를 조정
for(i=0; i<row_count; i++)
{
row= mysql_fetch_row(myres); // 저장된 자료에서 한 레코드를 읽는다
if( isarray(row) ) // 또는 if(row!=MYSQL_ERR)
for(j=0; j<field_count; j++) print("\t", row[j]); // 항목 출력
print();
}
mysql_free_result(myres); // 임시 저장된 자료를 해제(free)한다.
mysql_close(mysql); // MySQL 서버와의 접속을 해제한다.
------------------------------ [ 출력결과 ] ------------------------------
한여름 35 oo시 oo동 456번지
서지연 20 A시 B동 789번지
|