현재 위치: > 최신 기사 목록> next_result () 전에 use_result ()를 사용하여 결과 세트를 얻는 방법

next_result () 전에 use_result ()를 사용하여 결과 세트를 얻는 방법

gitbox 2025-04-29

PHP를 사용하여 MySQL Multi-Statement Query를 작동 할 때 Multi_Query ()는 종종 Next_result ()를 사용하여 여러 결과 세트를 가로 지르는 데 사용됩니다. next_result ()를 호출하기 전에 use_result ()를 사용하는 것은 결과가 누락되거나 오류 처리되지 않도록하는 핵심 단계입니다. 이 기사는 올바른 사용법을 소개하고 완전한 코드 예제를 제공합니다.

사용 _result ()가 필요한 이유

MySQL은 다중 종료 쿼리를 수행 한 후 여러 결과 세트를 반환합니다. php는 결과 ​​세트를 얻는 두 가지 방법을 제공합니다 : store_result ()use_result () . 그중에서도 USE_RESULT () 는 부러지는 메소드이며 큰 데이터 볼륨의 결과를 읽는 데 적합하며 즉시 서버에서 데이터를 읽기 시작합니다.

현재 결과 세트를 처리하기 전에 Next_Result () 에게 전화하면 현재 결과 세트는 MySQL에 의해 폐기됩니다. 이렇게하면 해당 결과에 액세스 할 수 없으며 오류가 발생할 수도 있습니다. 따라서 현재 결과 세트를 얻은 다음 읽으려면 사용 _result ()를 먼저 호출해야합니다.

올바른 사용법

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_error) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

$sql = "SELECT * FROM users; SELECT * FROM products;";
if ($mysqli->multi_query($sql)) {
    do {
        // 부름 next_result() 현재 결과 세트는 전에 얻어야합니다
        if ($result = $mysqli->use_result()) {
            while ($row = $result->fetch_assoc()) {
                print_r($row);
            }
            $result->free(); // 결과 세트 리소스를 해제해야합니다
        } else {
            echo "현재 결과 세트 나 오류가 없습니다:" . $mysqli->error;
        }
    } while ($mysqli->next_result());
} else {
    echo "쿼리가 실패했습니다:" . $mysqli->error;
}

$mysqli->close();
?>

주목해야 할 것

  1. 호출 use_result () 한 번만 호출 : use_result ()는 결과 세트 당 한 번만 사용할 수 있습니다. 그렇지 않으면 오류 가보고됩니다.

  2. 릴리스 리소스 : 결과를 처리 한 후 $ result-> free () 에게 전화하여 메모리를 확보하십시오.

  3. 오류 확인 : use_result ()는 false를 반환 할 수 있으며 판단해야합니다.

결론

use_result ()next_result () 의 올바른 순서를 마스터하면 다중 진료 쿼리를 처리 할 때 일반적인 논리 오류를 피할뿐만 아니라 프로그램의 견고성을 향상시키는 데 도움이됩니다. 프로젝트에서 여러 SQL 쿼리를 호출해야하고 결과 세트가 크면 use_result () 에 우선 순위를 부여하고 위의 프로세스를 엄격히 준수하는 것이 좋습니다.

보다 실용적인 기술을 보려면 웹 사이트를 방문하십시오 : https://gitbox.net/php-tips