현재 위치: > 최신 기사 목록> next_result () mysqli_multi_query () 완전한 다중 쿼리 실행 프로세스와 결합

next_result () mysqli_multi_query () 완전한 다중 쿼리 실행 프로세스와 결합

gitbox 2025-05-02

PHP에서 MySQL 데이터베이스를 사용할 때는 종종 여러 쿼리를 실행해야합니다. mysqli_multi_query ()는 여러 쿼리를 실행할 수있는 기능을 제공하지만 여러 쿼리가 실행 된 후 각 쿼리의 결과를 하나씩 얻는 방법은 무엇입니까? 현재 다음 _result () 메소드는 편리합니다. 이 기사는 Next_result ()MySQLI_Multi_Query ()를 통해 완전한 다중 쿼리 실행 프로세스를 구현하는 방법을 자세히 설명합니다.

mysqli_multi_query ()next_result () 란 무엇입니까?

  1. mysqli_multi_query () : MySQLI가 여러 SQL 쿼리를 실행하기 위해 제공하는 메소드입니다. 이 메소드는 한 번에 여러 SQL 쿼리를 실행하고 부울 값을 반환하여 실행이 성공했는지 여부를 나타냅니다.

    예:

     $mysqli->multi_query($query);
    
  2. next_result () : 이것은 MySQLI가 다중 쿼리 결과를 설정하기 위해 제공하는 또 다른 방법입니다. 쿼리에 여러 결과 세트 (예 : 다중 선택 쿼리)가있는 경우 각 결과 세트를 순서대로 가져 오려면 next_result ()를 사용해야합니다.

    예:

     $mysqli->next_result();
    

mysqli_multi_query ()를 사용하여 여러 쿼리를 실행합니다.

먼저 데이터베이스에 연결하고 MySQL 연결이 설정되었는지 확인해야합니다.

 <?php
$mysqli = new mysqli('localhost', 'user', 'password', 'database');

// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}
?>

다음으로 여러 쿼리가 포함 된 SQL 문을 작성합니다.

 <?php
$query = "SELECT * FROM users;
          SELECT * FROM products;
          SELECT * FROM orders;";
?>

위의 코드에는 쿼리 사용자 테이블 1 개, 쿼리 제품 테이블 1 개 및 쿼리 주문 테이블의 세 가지 쿼리가 있습니다. 이 쿼리를 실행하고 각 쿼리의 결과를 차례로 얻고 싶습니다.

mysqli_multi_query ()를 사용하여 쿼리를 실행하십시오

mysqli_multi_query ()를 사용하여 여러 쿼리를 실행하고 next_result ()를 사용하여 각 쿼리의 결과 세트를 얻으십시오.

 <?php
// 여러 쿼리를 수행하십시오
if ($mysqli->multi_query($query)) {
    // 각 결과 세트를 반복합니다
    do {
        if ($result = $mysqli->store_result()) {
            // 각 쿼리의 결과 세트를 가져 와서 표시합니다
            while ($row = $result->fetch_assoc()) {
                echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
            }
            $result->free();
        }

        // 더 많은 결과 세트가있는 경우,계속 처리하십시오
        if ($mysqli->more_results()) {
            $mysqli->next_result();
        }
    } while ($mysqli->more_results());
} else {
    echo "Error: " . $mysqli->error;
}
?>

코드 설명

  1. 쿼리 실행 : $ mysqli-> multi_query ($ query)는 여러 쿼리를 실행하는 데 사용됩니다. 쿼리가 성공하면 true가 반환 된 다음 do-while 루프로 들어갑니다.

  2. 각 결과 세트를 처리하십시오 . $ mysqli-> store_result ()는 현재 쿼리의 결과 세트를 얻는 데 사용됩니다. fetch_assoc () 를 통해 각 데이터 행을 반복하십시오.

  3. 더 많은 결과 세트를 확인하십시오 . $ mysqli-> more_results ()는 더 많은 결과 세트가 있는지 확인하는 데 사용됩니다. 그렇다면 다음 _result ()를 사용하여 다음 결과 세트를 계속 얻으십시오.

  4. 무료 리소스 : 결과 세트의 각 프로세스 후에는 무료 ()를 사용하여 메모리를 확보합니다.

주목해야 할 것

  1. 쿼리 순서 : mysqli_multi_query () 는 순서대로 여러 쿼리를 실행하며 실행 순서는 SQL 문의 순서와 일치합니다.

  2. 오류 처리 : 여러 쿼리를 실행하면 쿼리가 발생하면 전체 프로세스가 실패 할 수 있습니다. 오류를 잘 처리하십시오.

  3. 데이터 보안 : 준비된 명령문을 사용하여 SQL 주입 문제를 방지하십시오. 여러 쿼리를 실행할 때는 데이터 보안을 보호하기 위해 전처리 문을 사용하는 것이 가장 좋습니다.

URL 교체 예

쿼리의 URL에 참여하고 도메인 이름을 gitbox.net 으로 바꾸어야하는 경우 (예 :

 <?php
$query = "SELECT * FROM websites WHERE url = 'http://example.com';";
?>

이 경우 URL의 도메인 이름을 gitbox.net 으로 교체합니다.

 <?php
$query = "SELECT * FROM websites WHERE url = 'http://gitbox.net';";
?>

이렇게하면 쿼리를 처리 할 때 모든 도메인 이름을 gitbox.net 으로 유연하게 교체 할 수 있습니다.