현재 위치: > 최신 기사 목록> PHP의 next_result ()를 사용하여 다중 자극 세트를 처리하는 기본 프로세스

PHP의 next_result ()를 사용하여 다중 자극 세트를 처리하는 기본 프로세스

gitbox 2025-04-28

php에서 next_result ()는 여러 결과 세트를 처리하는 데 사용되는 함수입니다. 동일한 연결에서 여러 쿼리를 실행하고 각 쿼리의 결과 세트를 하나씩 처리하려는 등 여러 SQL 쿼리를 처리 할 때 특히 유용합니다. 이 기사는 PHP의 Next_result () 함수를 사용하여 이러한 결과 세트를 처리하고 기본 프로세스 및 기술을 마스터하는 방법을 소개합니다.

다음 _result () 함수는 무엇입니까?

next_result () 는 MySQLI 확장자의 다음 쿼리 결과 세트를 가져 오는 데 사용되는 메소드입니다. 연결이 여러 쿼리를 실행하면 Next_Result ()를 사용하여 다음 결과 세트로 전환합니다. 이는 특히 저장 프로 시저를 실행할 때 여러 쿼리가 처리되는 상황에서 매우 유용합니다.

MySQL에서 여러 쿼리가 세미콜론 으로 분리됩니다. MySQLI를 사용하여 여러 쿼리를 실행할 때 PHP는 기본적으로 첫 번째 쿼리 결과 만 리턴 할 수 있습니다. 후속 쿼리 결과 세트를 처리 해야하는 경우 next_result ()를 사용해야합니다.

next_result () 사용의 기본 프로세스

  1. 여러 쿼리를 실행하십시오 <br> 먼저 MySQLI 연결을 만들고 여러 쿼리를 실행하십시오. Multi_Query () 메소드를 사용하여 여러 SQL 쿼리를 한 번에 실행할 수 있습니다.

  2. 첫 번째 결과 세트 <br>를 처리하십시오 쿼리를 실행 한 후 첫 번째 쿼리의 결과 세트는 store_result () 또는 use_result () 메소드를 통해 얻습니다.

  3. 다음 _result ()를 사용하여 후속 결과 세트 <br>을 얻으십시오 다음 결과 세트로 전환하려면 Next_result ()를 호출하십시오. 그런 다음 첫 번째 결과 세트와 마찬가지로 다른 결과 세트를 처리 할 수 ​​있습니다.

  4. 연결을 닫습니다 <br> 마지막으로 데이터베이스 연결을 닫아야합니다.

샘플 코드

다음은 실제로 다음 _result () 함수를 사용하여 여러 결과 세트를 처리하는 PHP 샘플 코드입니다.

 <?php
// 만들다 MySQLi 연결하다
$mysqli = new mysqli("localhost", "user", "password", "database");

// 检查연결하다是否成功
if ($mysqli->connect_error) {
    die("연결하다失败: " . $mysqli->connect_error);
}

// 여러 쿼리를 수행하십시오
$query = "SELECT id, name FROM users; SELECT id, title FROM posts;";

if ($mysqli->multi_query($query)) {
    // 첫 번째 쿼리 결과를 처리하십시오
    do {
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_assoc()) {
                echo "User: " . $row['name'] . " (ID: " . $row['id'] . ")<br>";
            }
            $result->free();
        }
        
        // 다음 결과 세트를 얻으십시오
        if ($mysqli->more_results()) {
            $mysqli->next_result();
        }
    } while ($mysqli->more_results());
} else {
    echo "쿼리가 실패했습니다: " . $mysqli->error;
}

// 关闭연결하다
$mysqli->close();
?>

위 코드에서는 두 쿼리가 포함 된 SQL 문을 실행합니다. $ mysqli-> multi_query ($ query) 는이 두 쿼리를 실행하는 데 사용 된 다음 쿼리 결과를 하나씩 ... DO ... While Loop을 통해 하나씩 처리합니다. 각 결과 세트가 처리되면 Next_Result ()가 호출되어 다음 결과 세트를 얻습니다.

실용적인 응용 기술

  • 저장된 절차 처리 <br> 저장 프로 시저를 사용하면 저장된 절차가 여러 결과 세트를 반환 할 수 있습니다. next_result ()를 사용하여 각 결과를 하나씩 처리 할 수 ​​있습니다.

  • 최적화 된 성능 <br> 특정 결과 세트를 처리 할 필요가 없으면 건너 뛸 수 있습니다. 결과 세트를 처리하지 않고 next_result ()를 호출하십시오.

  • 오류 처리 <br> multi_query ()를 사용하여 여러 쿼리를 실행할 때 각 쿼리의 실행 결과를 확인하십시오. mysqli-> more_results ()는 모든 결과 세트가 처리되었는지 확인할 수 있습니다.