1. 형식: myres_ptr= mysql_query_result(mysql, query)
2. 기능: 인자 mysql으로 접속된 MySQL 서버에 인자 query의 SQL 질의어를 전달하여
실행한 후 결과 자료를 임시 저장한다. 즉, mysql_query() 함수를 실행한
후 mysql_store_result() 함수를 실행하는 것과 같다.
3. 설명
(1) 이 함수는 MySQL에서 지원하지 않고 mysql_query()와 mysql_store_result()를
응용한 것이다.
(2) 인자 mysql은 MySQL 포인터이며 MySQL 연결시 얻은 값이고 MySQL 포인터가
아니면 에러 처리되며, 이미 폐쇄된 MySQL 포인터일 때에는 경고 메시지를
출력하고 result에 -1 의 값을 되돌린다.
(3) 인자 query는 SQL 질의어로 문자열이어야 하며 수치이면 문자열로 변환된다.
(4) 임시 저장된 자료에 대한 MySQL result 포인터가 myres_ptr에 돌려진다.
(5) myres_ptr의 값이 정수 -1(MYSQL_ERR)이면 질의어 실행을 실패한 경우이다.
(6) myres_ptr의 값이 정수 0 이면 결과를 저장할 수 없거나 또는 인자 query가
결과 자료가 없는 SQL 질의어인 경우이다.(예: INSERT, DELETE, UPDATE 등)
4. 사용예
// 아래 프로그램은 MySQL 서버가 정상 작동하지 않거나 또는 welhelp 라는
// 데이터베이스가 없거나 addr 이라는 테이블이 없으면 에러가 발생한다.
mysql= mysql_connect(NULL, 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 테이블의 모든 항목을 선택
myres= mysql_query_result(mysql, query);
if(myres==MYSQL_ERR) { print("query error!!\n"); return(-1); }
if(myres==NULL) { print("store result error!\n"); return(-1); }
while( mysql_fetch_global(myres) > 0 )
{
print("\t", name); // addr 테이블의 name 항목의 값은 name
print("\t", age); // addr 테이블의 age 항목의 값은 age
print("\t", address); // addr 테이블의 address 항목의 값은 address
print(); // 줄을 빠꿔준다.
}
mysql_free_result(myres); // 임시 저장된 자료를 해제(free)한다.
mysql_close(mysql); // MySQL 서버와의 접속을 해제한다.
------------------------------ [ 출력결과 ] ------------------------------
홍길동 28 xx시 xx동 123번지
한여름 35 oo시 oo동 456번지
서지연 20 A시 B동 789번지
|