현재 위치: > 최신 기사 목록> next_result () 및 mysqli_fetch_assoc ()는 여러 결과 세트를 공동으로 처리합니다

next_result () 및 mysqli_fetch_assoc ()는 여러 결과 세트를 공동으로 처리합니다

gitbox 2025-04-29

MySQL을 사용하는 경우 때로는 여러 SQL 쿼리를 실행하여 한 번에 여러 결과 세트를 얻습니다. PHP에서 MySQLI Extension을 사용하는 경우 Multi_Query () 메소드를 사용하여 여러 쿼리를 한 번에 실행 한 다음이 결과를 하나씩 다음 ext_result ()mysqli_fetch_assoc () ~ 하나씩 처리 할 수 ​​있습니다.

아래에서 우리는 예제를 통해이 과정을 보여줄 것입니다.

장면 예

사용자주문이라는 두 개의 테이블이있는 데이터베이스가 있다고 가정합니다. 우리는 두 테이블의 내용을 동시에 쿼리하려고합니다.

 <?php
// 데이터베이스 연결을 만듭니다
$mysqli = new mysqli("localhost", "username", "password", "database");

// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

// 여러 줄을 구성하십시오SQL성명
$sql = "SELECT id, name FROM users;";
$sql .= "SELECT id, user_id, total FROM orders;";

// 사용multi_query()执行多条성명
if ($mysqli->multi_query($sql)) {
    do {
        // 사용store_result()현재 결과 세트를 가져옵니다
        if ($result = $mysqli->store_result()) {
            // 현재 결과 세트를 통해 반복하십시오
            while ($row = $result->fetch_assoc()) {
                print_r($row);
            }
            $result->free(); // 현재 결과 세트 리소스를 해제하십시오
        }

        // 다음 결과 세트가있는 경우,계속하다
    } while ($mysqli->more_results() && $mysqli->next_result());
} else {
    echo "쿼리 오류: " . $mysqli->error;
}

// 데이터베이스 연결을 닫습니다
$mysqli->close();
?>

핵심 기능 해석

multi_query ()

이 기능을 사용하면 단일 요청에서 여러 SQL 문을 실행할 수 있습니다. 이는 쿼리의 배치 실행 및 요청 수를 줄이는 데 매우 유용합니다.

store_result ()

이 함수는 현재 결과 세트를 가져 와서 fetch_assoc () 와 함께 라인별로 읽는 데 사용됩니다.

fetch_assoc ()

결과 세트에서 연관 배열로 행을 반환하여 루프에서 데이터를 추출하는 데 적합합니다.

next_result ()

이 기능은 다음 결과 세트를 준비하는 데 사용됩니다. 현재 결과 세트를 처리 한 후 다음 결과 세트를 입력하려면 호출되어야합니다.

사용 권장 사항

  • 결과 세트가 처리 될 때마다 Free ()를 사용하여 리소스를 제거하십시오.

  • SQL 주입 문제를 예방하기 위해주의하십시오. 쿼리 문에 사용자 입력이 포함 된 경우 전처리 문을 사용하십시오.

  • More_Results ()를 확인하여 처리 할 결과 세트가 더 있는지 확인하십시오.

실제 시나리오

일부 시나리오에서는 multi_query () + next_result ()를 사용할 수 있습니다.

  • 백엔드 보고서는 여러 테이블을 쿼리합니다

  • 저장된 절차를 실행하여 여러 결과 세트를 반환합니다

  • 성능을 최적화하고 데이터베이스 상호 작용을 줄입니다

요약

Multi_Query ()Next_Result ()MySQLI_Fetch_Assoc () 과 결합하여 여러 결과 세트를 우아하게 처리하여 프로그램 효율성 및 코드 단순성을 향상시킬 수 있습니다.

위에서 볼 수 있듯이 엔터프라이즈 애플리케이션을 개발하든 자체 서비스를 구축하든 이러한 기능의 사용을 마스터하면 데이터베이스를보다 효율적으로 운영하는 데 도움이됩니다.

콘텐츠에 대해 자세히 알고 싶다면 더 실용적인 자습서 및 자료는 https://gitbox.net 을 방문하십시오.