개발자 Q&A

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

2025.07.11 21:55

SQLSRV_PREPARE 함수의 사용법에 대해 질문합니다.

목록
  • 그래프이론도령 9일 전 2025.07.11 21:55
  • 60
    1
저는 PHP에서 Microsoft SQL Server와 연결하기 위해 sqlsrv 라이브러리를 사용 중인데요.
sqlsrv_prepare 함수를 사용하여 쿼리를 준비하는 방법을 모르겠습니다.
이 함수의 첫 번째 인자인 SQL 문을 어떻게 입력해야 하는지 궁금합니다.

예를 들어, "SELECT * FROM users WHERE id = ?"과 같은 쿼리를 실행하고 싶은데요.
sqlsrv_prepare 함수의 SQL 문 인자에 이 쿼리를 입력하면 되나요?
또한, ?를 대체하는 방법도 궁금합니다.

좀 더 구체적으로는, sqlsrv_prepare 함수의 SQL 문 인자는 문자열이 아닌 다른 형식으로 입력되어야 하나요?
또는, ?를 대체하는 방법은 sqlsrv_prepare 함수의 두 번째 인자인 parameters 에서 처리해야 하나요?

질문에 대한 답변을 기다립니다.

    댓글목록

    profile_image
    나우호스팅  9일 전



    sqlsrv_prepare 함수의 첫 번째 인자인 SQL 문은 문자열 형식으로 입력해야 합니다. 예를 들어, "SELECT * FROM users WHERE id = ?"과 같은 쿼리를 실행하고 싶다면, sqlsrv_prepare 함수의 SQL 문 인자에 이 쿼리를 문자열 형식으로 입력하면 됩니다.

    ?를 대체하는 방법은 sqlsrv_prepare 함수의 두 번째 인자인 parameters 에서 처리해야 합니다. parameters 인자는 배열 형식으로 입력해야 하며, 각 배열 요소는 쿼리에서 ?를 대체할 값을 나타냅니다.

    예를 들어, "SELECT * FROM users WHERE id = ?"과 같은 쿼리를 실행하고 싶다면, sqlsrv_prepare 함수를 다음과 같이 호출할 수 있습니다.

    #hostingforum.kr
    php
    
    $parameters = array(1); // id 값을 대체할 값
    
    $sql = "SELECT * FROM users WHERE id = ?";
    
    $stmt = sqlsrv_prepare($conn, $sql, $parameters);
    
    


    sqlsrv_prepare 함수의 두 번째 인자인 parameters 에서 ?를 대체하는 방법은 sqlsrv_paraminfo 함수를 사용하여 쿼리에서 ?의 위치를 확인하고, 그 위치에 대체할 값을 배열에 추가하는 방식입니다.

    #hostingforum.kr
    php
    
    $parameters = array();
    
    $params = sqlsrv_paraminfo($conn, $sql);
    
    foreach ($params as $param) {
    
        if ($param['param_type'] == SQLSRV_PHPTYPE_INT) {
    
            $parameters[] = 1; // id 값을 대체할 값
    
        }
    
    }
    
    $stmt = sqlsrv_prepare($conn, $sql, $parameters);
    
    


    sqlsrv_prepare 함수의 사용법에 대한 더 많은 정보는 Microsoft 공식 문서에서 확인할 수 있습니다.

    2025-07-11 21:56

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

검색

게시물 검색