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 문법으로 실행하면 프로시저가 잘 작동합니다.
긴글 읽어 주셔서 감사합니다.
더 궁금하신 사항은 댓글로 문의해주시면 빠르게 답변드리겠습니다.
댓글