개발 언어/php

[php] sqlsrv 사용 (저장 프로시져 사용하기)

삐뚤어진 개발자 2020. 6. 10.

sqlsrv 저장 프로시져 (store procedure) 사용

php 와 mssql을 연동하는 드라이버인 sqlsrv 를 사용하여 저장 프로시져를 실행, 결과값을 받아 처리하는 방법을 알아보겠습니다. 

 

 

msdn에 나와있는 방법

$param1= "param1";
$param2= "param2";
$params= array(
    array($param1,SQLSRV_PARAM_IN)
    ,array($param2,SQLSRV_PARAM_IN)
);

$stmt = sqlsrv_query($conn, '{CALL procedure_name(?,?)}', $params);

먼저 msdn에 나와있는 방법입니다.

파라미터를 $params 라는 배열 변수에 담아서  sqlsrv_query 함수의 인수로 보내는 방법입니다.

{CALL 프로시저 이름(?,?)} => 물음표에 배열 파라미터의 항목이 하나씩 들어간다는 말입니다.

 

 

내가 생각한 방법

$param1 ="param1";
$param2 ="param2";
$query = "EXEC [db_name].dbo.procedure_name ".$param1.",".$param2;

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

쿼리를 실행할 수 있다면, 파라미터를 굳이 배열 변수에 담아서 보내지 않고 위처럼 보내는 방법도 될꺼라고 생각했습니다. 

이것도 잘 작동합니다. EXEC 프로시져 이름 파라미터1, 파라미터2 ... 이렇게 mssql 문법으로 실행하면 프로시저가 잘 작동합니다.

 

긴글 읽어 주셔서 감사합니다.

더 궁금하신 사항은 댓글로 문의해주시면 빠르게 답변드리겠습니다.

 

댓글