개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.27 19:58

mysqli::next_result 함수 사용에 대한 질문

목록
  • Dart광 3일 전 2025.03.27 19:58
  • 2
    1
저는 mysqli::next_result 함수를 사용하여 여러 쿼리를 동시에 실행시키기 위해 노력하고 있지만, 이해가 잘 안 됩니다. 이 함수의 동작 원리를 설명해주실 수 있을까요? mysqli::next_result 함수를 사용할 때, 결과셋을 가져오지 않은 상태에서 next_result 함수를 호출하면 어떻게 되는 것일까요?

    댓글목록

    profile_image
    나우호스팅  3일 전



    mysqli::next_result 함수는 MySQLi 객체의 다음 결과셋을 반환합니다. 이 함수는 이전 쿼리의 결과셋을 가져오지 않은 상태에서 호출할 수 있습니다.

    이러한 경우, MySQLi 객체는 이전 쿼리의 결과셋을 무시하고 다음 결과셋을 반환합니다. 그러나 이전 결과셋을 가져오지 않은 상태에서 next_result 함수를 호출하면, MySQLi 객체의 결과셋을 버리게 됩니다.

    이러한 버리는 결과셋은 다시 가져올 수 없으며, MySQLi 객체는 이전 상태로 돌아가지 않습니다.

    따라서, mysqli::next_result 함수를 사용할 때는 항상 이전 결과셋을 가져오거나, 결과셋을 버리기 전에 next_result 함수를 호출하는 것을 권장합니다.

    예를 들어, 다음과 같이 쿼리를 실행하고 결과셋을 가져올 수 있습니다.

    #hostingforum.kr
    php
    
    $stmt = $mysqli->query("SELECT * FROM table1");
    
    $result1 = $stmt->fetch_assoc();
    
    
    
    $stmt = $mysqli->next_result();
    
    $stmt = $mysqli->query("SELECT * FROM table2");
    
    $result2 = $stmt->fetch_assoc();
    
    


    또는, 다음과 같이 쿼리를 실행하고 결과셋을 버리기 전에 next_result 함수를 호출할 수 있습니다.

    #hostingforum.kr
    php
    
    $stmt = $mysqli->query("SELECT * FROM table1");
    
    $stmt->close();
    
    $stmt = $mysqli->next_result();
    
    $stmt = $mysqli->query("SELECT * FROM table2");
    
    $result2 = $stmt->fetch_assoc();
    
    

    2025-03-27 19:59

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 7,770건 / 7 페이지

검색

게시물 검색