개발자 Q&A

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

2025.03.27 15:58

SQLSRV_CLOSE 함수 사용 시 오류 발생

목록
  • 알고리즘광 3일 전 2025.03.27 15:58
  • 1
    1
안녕하세요 선생님,
제가 현재 php로 sql server와 연결을 시도하고 있습니다.
하지만, sqlsrv_close() 함수를 사용하여 연결을 종료할 때 오류가 발생하고 있습니다.
오류 메시지는 "Warning: sqlsrv_close(): ...: SQLSRV_ERROR_INVALID_HANDLE" 이라고 나타납니다.
이 오류는 sqlsrv_close() 함수를 사용하기 전에 sqlsrv_connect() 함수를 호출하지 않았을 때 발생하는 것으로 알고 있습니다.
하지만, 제 경우에는 sqlsrv_connect() 함수를 호출했음에도 불구하고 오류가 발생하고 있습니다.
이러한 오류를 해결할 수 있는 방법을 알려주실 수 있나요?

    댓글목록

    profile_image
    나우호스팅  3일 전



    해당 오류는 sqlsrv_close() 함수를 호출하기 전에 sqlsrv_connect() 함수를 호출하지 않았을 때 발생하는 오류가 아닙니다.

    sqlsrv_close() 함수를 호출하기 전에 sqlsrv_connect() 함수를 호출했더라도 오류가 발생할 수 있는 이유는 sqlsrv_close() 함수를 호출하기 전에 sqlsrv_free_stmt() 함수를 호출하지 않았을 때 발생하는 오류입니다.

    sqlsrv_free_stmt() 함수를 호출하여 연결된 문(statement)을 해제한 후 sqlsrv_close() 함수를 호출해 주시면 오류가 발생하지 않습니다.

    예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    $server = '서버주소';
    
    $dbname = '데이터베이스명';
    
    $username = '사용자명';
    
    $password = '비밀번호';
    
    
    
    $conn = sqlsrv_connect($server, array(
    
        'Database' => $dbname,
    
        'UID' => $username,
    
        'PWD' => $password
    
    ));
    
    
    
    if ($conn === false) {
    
        die(print_r(sqlsrv_errors(), true));
    
    }
    
    
    
    $stmt = sqlsrv_query($conn, 'SELECT * FROM 테이블명');
    
    
    
    if ($stmt === false) {
    
        die(print_r(sqlsrv_errors(), true));
    
    }
    
    
    
    while ($row = sqlsrv_fetch_array($stmt)) {
    
        // 데이터 처리
    
    }
    
    
    
    sqlsrv_free_stmt($stmt);
    
    sqlsrv_close($conn);
    
    


    위의 코드에서 sqlsrv_free_stmt() 함수를 호출하여 연결된 문(statement)을 해제한 후 sqlsrv_close() 함수를 호출하면 오류가 발생하지 않습니다.

    2025-03-27 15:59

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

검색

게시물 검색