개발자 Q&A

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

2025.05.21 01:02

SQLSRV_FIELD_METADATA 함수 사용 시 오류 해결 방법을 알려주세요

목록
  • Android개발광 10일 전 2025.05.21 01:02
  • 18
    1
저는 최근에 SQLSRV_FIELD_METADATA 함수를 사용하려고 하는데, 아래와 같은 오류가 발생하고 있습니다.

php

$sql = "SELECT * FROM 테이블명";

$stmt = sqlsrv_query($conn, $sql);

if ($stmt === false) {

    die(print_r(sqlsrv_errors(), true));

}

$fields = sqlsrv_field_metadata($stmt);



위의 코드를 실행하면, 오류 메시지가 다음과 같이 출력됩니다.



Array

(

    [0] => Array

        (

            [0] => 42000

            [1] => 211

            [2] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid column name '테이블명'.

        )



)



저는 테이블명을 지정하지 않아도 되지 않을까 생각했는데, SQLSRV_FIELD_METADATA 함수를 사용할 때는 테이블명을 반드시 지정해야 하는 것인지 여부를 알려주세요.

    댓글목록

    profile_image
    나우호스팅  10일 전



    SQLSRV_FIELD_METADATA 함수는 쿼리 결과에 대한 필드 메타데이터를 반환하는 함수입니다. 이 함수를 사용하기 위해서는 먼저 쿼리 결과를 가져와야 합니다. 따라서 SELECT 문에 테이블명을 지정해야 합니다.

    해당 오류는 테이블명을 지정하지 않아 발생한 것입니다. 테이블명을 지정하지 않으면 SQL Server는 테이블명을 찾을 수 없다는 오류 메시지를 반환합니다.

    해결 방법은 SELECT 문에 테이블명을 지정하는 것입니다. 예를 들어, 다음과 같이 테이블명을 지정하면 오류가 해결됩니다.

    #hostingforum.kr
    php
    
    $sql = "SELECT * FROM 테이블명 WHERE 1=0"; // 테이블명은 실제 테이블명으로 대체해야 합니다.
    
    $stmt = sqlsrv_query($conn, $sql);
    
    if ($stmt === false) {
    
        die(print_r(sqlsrv_errors(), true));
    
    }
    
    $fields = sqlsrv_field_metadata($stmt);
    
    


    위의 코드에서 WHERE 1=0은 실제 데이터를 반환하지 않습니다. 하지만 SQL Server는 쿼리 결과를 반환하기 때문에 SQLSRV_FIELD_METADATA 함수를 사용할 수 있습니다.

    2025-05-21 01:03

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

검색

게시물 검색