mysqli::store_result
(PHP 5, PHP 7, PHP 8)
mysqli::store_result -- mysqli_store_result — 마지막 쿼리의 결과 집합을 전송합니다.
설명
객체 지향 스타일
public mysqli::store_result(int $mode
= 0): mysqli_result|false
절차적 스타일
mysqli_store_result(mysqli $mysql
, int $mode
= 0): mysqli_result|false
mysqli_data_seek() 함수와 함께 사용할 mysql
매개변수가 나타내는 데이터베이스 연결에 대한 마지막 쿼리의 결과 집합을 전송합니다.
매개변수
mysql
- 절차적 스타일 전용: mysqli_connect() 또는 mysqli_init()에 의해 반환된 mysqli 객체
mode
- 설정하려는 옵션입니다. 다음 값 중 하나일 수 있습니다.
유효한 옵션
이름 설명 MYSQLI_STORE_RESULT_COPY_DATA
내부 mysqlnd 버퍼에서 가져온 PHP 변수로 결과를 복사합니다. 기본적으로 mysqlnd는 메모리에 저장된 결과를 복사 및 복제하는 것을 피하기 위해 참조 논리를 사용합니다. 특정 결과 세트, 예를 들어 많은 작은 행이 있는 결과 세트의 경우, 결과를 보유하는 PHP 변수가 더 일찍 릴리스될 수 있기 때문에 복사 접근 방식은 전체 메모리 사용량을 줄일 수 있습니다(mysqlnd에서만 사용 가능).
반환 값
버퍼링된 결과 개체를 반환하거나 오류가 발생한 경우 false
를 반환합니다.
메모:
mysqli_store_result()는 쿼리가 결과 집합을 반환하지 않은 경우(예: 쿼리가 INSERT 문인 경우) false
를 반환합니다. 이 함수는 결과 집합 읽기에 실패한 경우에도 false
를 반환합니다. mysqli_error()가 빈 문자열을 반환하지 않는지, mysqli_errno()가 0이 아닌 값을 반환하는지, 또는 mysqli_field_count()가 0이 아닌 값을 반환하는지 확인하여 오류가 발생했는지 확인할 수 있습니다. 또한 mysqli_query()에 대한 성공적인 호출 후에 이 함수가 false
를 반환하는 가능한 이유는 너무 큰 결과 세트(메모리를 할당할 수 없음)일 수 있습니다. mysqli_field_count()가 0이 아닌 값을 반환하면 명령문은 비어 있지 않은 결과 세트를 생성해야 합니다.
Examples
mysqli_multi_query()를 참조하십시오.
노트
메모: mysqli_free_result() 함수를 사용하여 쿼리 결과에 사용된 메모리를 해제하는 것이 항상 좋은 방법이지만, mysqli_store_result()를 사용하여 큰 결과 세트를 전송할 때 이것은 특히 중요합니다.
기타
- mysqli_real_query() - SQL 쿼리 실행
- mysqli_use_result() - 결과 집합 검색 시작