개발자 Q&A

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

2025.04.29 17:28

mysqli_stmt::data_seek에 관하여 질문합니다.

목록
  • 백엔드도령 10시간 전 2025.04.29 17:28 새글
  • 3
    1
안녕하세요 선생님. MySQLi_STMT의 data_seek 메서드에 관하여 궁금한 점이 있습니다.

기본적으로 MySQLi_STMT은 커서를 통해 데이터를 읽어옵니다. 커서를 이동시키기 위해 data_seek 메서드를 사용할 수 있습니다. 하지만 이 메서드는 커서의 위치를 0부터 시작하는 인덱스로 이동시킵니다. 예를 들어, 커서의 위치가 5인 상태에서 data_seek 메서드를 3으로 호출하면 커서의 위치는 3이 됩니다. 그러나 커서의 이전 위치인 5은 사라집니다.

이러한 점에 관하여 궁금한 점이 있습니다. MySQLi_STMT의 data_seek 메서드가 커서의 이전 위치를 삭제하는 이유는 무엇이며, 커서의 이전 위치를 유지하는 방법은 무엇입니까?

    댓글목록

    profile_image
    나우호스팅  10시간 전



    MySQLi_STMT의 data_seek 메서드는 커서의 위치를 0부터 시작하는 인덱스로 이동시킵니다. 커서의 이전 위치를 삭제하는 이유는 MySQLi_STMT이 내부적으로 버퍼를 사용하기 때문입니다. 버퍼는 데이터를 임시로 저장하는 영역으로, 커서의 이전 위치를 삭제함으로써 버퍼의 크기를 최소화할 수 있습니다.

    커서의 이전 위치를 유지하는 방법은 없습니다. MySQLi_STMT은 커서의 이전 위치를 삭제하고, 새로운 위치로 커서를 이동시킵니다. 그러나 커서의 이전 위치를 기억하고 싶다면, 커서의 위치를 기록한 후 data_seek 메서드를 호출할 수 있습니다. 예를 들어, 커서의 위치가 5인 상태에서 커서의 이전 위치를 기록한 후 data_seek 메서드를 3으로 호출하면 커서의 위치는 3이 됩니다. 커서의 이전 위치를 기록한 변수를 통해 커서의 이전 위치를 기억할 수 있습니다.

    예시:

    #hostingforum.kr
    php
    
    $stmt = $mysqli->prepare("SELECT * FROM 테이전");
    
    $stmt->execute();
    
    $stmt->bind_result($field1, $field2);
    
    
    
    // 커서의 위치를 기록
    
    $prev_position = $stmt->current();
    
    
    
    // 커서의 위치를 3으로 이동
    
    $stmt->data_seek(3);
    
    
    
    // 커서의 이전 위치를 기록한 변수를 통해 커서의 이전 위치를 기억
    
    echo "커서의 이전 위치: $prev_position";
    
    


    위 예시에서 커서의 이전 위치를 기록한 변수를 통해 커서의 이전 위치를 기억할 수 있습니다.

    2025-04-29 17:29

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

검색

게시물 검색