mssql 프로시저 연동중 output 인자값을 어떻게 입력해야 하는지 도움 요청 드려요~
1. 인자값이 input 하나일때는 정상적으로 작동합니다.
$data["as_styl"] = "123";
model
$sql = ("EXEC UP_MALL ?");
$query = $this->erp->query($sql, $data);
return $query->result_array();
2. 인자값에 input output 요두 있을경우 데이터가 안나옵니다.
$data = [];
$data["as_name"] = "가나다"; #input
$data["as_cuno"] = ""; #output
model
$sql = ("EXEC UP_MEMBER_CHECK ?, ?");
$query = $this->erp->query($sql, $data);
return $query->row();
답변감사합니다.
as_cuno 값이 없으면 아래와 같이 오류가 발생하고 있습니다. 그래서 OUTPUT 인자값을 추가 하였습니다.
프로시저 또는 함수 'UP_MEMBER_CHECK '에 매개 변수 '@as_cuno'이(가) 필요하지만 제공되지 않았습니다.
MSSQL 에서도 아래와 같이 사용하여 정상 작동하였습니다.
일단 아래처럼 해보세요.
$sql = ("EXEC @return_value = [dbo].[UP_MEMBER_CHECK ]
@as_name = N'가나다',
@as_cuno = @as_cuno OUTPUT
SELECT @as_cuno as N'@as_cuno', @as_cdno as N'@as_cdno'
");
$query = $this->erp->query($sql);
return $query->row();
결과는 알려주세요.
답변감사합니다.
테스트 결과 스칼라 변수 오류가 나와서 DECLARE @return_value int, @as_cuno nvarchar(20) 추가후
데이터 정상적으로 나오는걸 확인했습니다.
아래와 같은 방법만 가능한것인가요? $query = $this->erp->query($sql, $data); 배열을 사용할순 없는지 궁금합니다.
또, 서버가 php7.1 이라 sqlsrv 설정해서 사용하고 있습니다.
DECLARE @return_value int,
@as_cuno nvarchar(20)
EXEC [dbo].[UP_MEMBER_CHECK]
@as_name = N'조용훈',
@as_cuno = @as_cuno OUTPUT
SELECT @as_cuno as N'@as_cuno',
@as_cdno as N'@as_cdno'
@터치맨 특정DB에서만 동작하는 특별한 쿼리를 굳이 배열에 담아 사용할 필요는 없습니다.
쿼리빌더는 범용쿼리에 사용하도록 설계되어 있어 사용 DB에 맞추어 그때그때 유연하게 적용하는게 좋습니다.
$data["as_cuno"] = "" 빈값이고 같은 $data 배열로 넘어가서 조건에 반영된건 아닌가요?
결과는 $query->row() 이걸로 받고 있는데요?