23.8.7.70 mysql_store_result()
MYSQL_RES *mysql_store_result(MYSQL *mysql)
설명
mysql_query()
또는 mysql_real_query()
를 호출 한 뒤, 결과 세트를 정상적으로 생성하는 모든 문 ( SELECT
, SHOW
, DESCRIBE
, EXPLAIN
, CHECK TABLE
등)에 대해 mysql_store_result()
또는 mysql_use_result()
를 호출 할 필요 수 있습니다. 결과 세트의 처리를 완료 한 후 mysql_free_result()
도 호출 할 필요가 있습니다.
다른 문에 대해 mysql_store_result()
또는 mysql_use_result()
를 호출 할 필요는 없지만 모든 경우에 mysql_store_result()
를 호출해도, 그게 해를 미치거나 눈에 띄는 성능 저하를 초래 할 는 없습니다. mysql_store_result()
가 0이 아닌 값을 반환하는지 여부를 체크함으로써 문에 결과 집합이 있는지 여부를 감지 할 수 있습니다 (이에 대해서는 나중에 자세히 설명하고 있습니다).
다중 문 지원을 활성화하는 경우 mysql_next_result()
를 호출하는 루프를 사용하여 그 이상의 결과가 있는지를 판단하여 mysql_query()
또는 mysql_real_query()
에 대한 호출 결과를 얻을 하십시오. 예를 들어, 섹션 23.8.17 "여러 문 실행의 C API 지원" 을 참조하십시오.
문이 결과 세트를 반환할지 여부를 알 필요가있는 경우, mysql_field_count()
를 사용하여이를 확인할 수 있습니다. 섹션 23.8.7.22 "mysql_field_count ()" 를 참조하십시오.
mysql_store_result()
는 클라이언트에 대한 쿼리 결과 전체를 읽고 MYSQL_RES
구조를 할당하고이 구조에 결과를 배치합니다.
문이 결과 세트를 반환하지 않으면 (예를 들어,이 INSERT
문이었던 경우), mysql_store_result()
는 NULL 포인터를 반환합니다.
mysql_store_result()
는 결과 집합의 읽기에 실패하는 경우도 NULL 포인터를 반환합니다. mysql_error()
가 비어 있지 않은 문자열을 반환하거나 mysql_errno()
가 0이 아닌 반환하거나 mysql_field_count()
가 0을 반환 여부를 체크하여 에러가 발생했는지 여부를 확인할 수 있습니다.
반환되는 행이 없으면 빈 결과 집합이 반환됩니다. (빈 결과 집합은 반환 값으로 NULL 포인터와는 다릅니다.)
mysql_store_result()
를 호출하여 NULL 포인터 않은 결과가 반환 된 뒤에, mysql_num_rows()
를 호출하여 결과 집합의 행 수를 확인할 수 있습니다.
mysql_fetch_row()
를 호출하여 결과 집합에서 행을 인출하거나 mysql_row_seek()
와 mysql_row_tell()
를 호출하여 결과 집합의 현재 행의 위치를 가져 오거나 설정할 수 있습니다.
섹션 23.8.15.1 "mysql_query ()가 성공을 반환 한 후 mysql_store_result ()가 NULL을 반환 할 수있는 이유는 무엇인가" 를 참조하십시오.
반환 값
결과를 포함 MYSQL_RES
결과 구조. 오류가 발생하면 NULL
(0)
오류
mysql_store_result()
는 성공한 경우, mysql_error()
와 mysql_errno()
을 재설정합니다.
CR_COMMANDS_OUT_OF_SYNC
명령이 잘못된 순서로 실행되었습니다.
CR_OUT_OF_MEMORY
메모리 부족.
CR_SERVER_GONE_ERROR
MySQL 서버가 존재하지 않습니다.
CR_SERVER_LOST
서버에 대한 연결이 쿼리 중에 손실되었습니다.
CR_UNKNOWN_ERROR
알 수없는 오류가 발생했습니다.