PHP로 MSSQL Stored Procedure에 Output, RETVAL 사용하기 > php

본문 바로가기
사이트 내 전체검색

php

PHP로 MSSQL Stored Procedure에 Output, RETVAL 사용하기

페이지 정보

작성자 서방님 댓글 0건 조회 81회 작성일 14-08-11 15:08

본문

PHP로 MSSQL Stored Procedure에 Output, RETVAL 사용하기

/////////////////////////////////////////////////////////////////////////////
// 스토어드 프로시져
/////////////////////////////////////////////////////////////////////////////
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[procedure]
(
@sval varchar(50) OUTPUT,
@intval int OUTPUT,
@floatval decimal(6,4) OUTPUT
) AS

if @intval is null
select '@intval is null' as answer
else
select '@intval is NOT null' as answer

set @sval='Hello ' + @sval
set @intval=@intval+1
set @floatval=@floatval+1

return 10



/////////////////////////////////////////////////////////////////////////////
// PHP 소스
/////////////////////////////////////////////////////////////////////////////
$conn=mssql_connect("HANJAEHO","sa","hysteria");

if ($conn) {
mssql_select_db("Test",$conn);

mssql_query('SET ANSI_NULLS ON');
mssql_query('SET ANSI_WARNINGS ON');
$stmt=mssql_init("procedure",$conn);


mssql_bind($stmt,"RETVAL",&$val,SQLINT4);

$ival=11;
$fval=2.1416;
$sval="Frank";

mssql_bind($stmt,"@sval",&$sval,SQLVARCHAR,TRUE);
mssql_bind($stmt,"@intval",&$ival,SQLINT4,TRUE);
mssql_bind($stmt,"@floatval",&$fval,SQLFLT8,TRUE);

$result=mssql_execute($stmt);

$arr=mssql_fetch_row($result);

print ("Answer: " . $arr[0] . "
" );

mssql_next_result($result);

print ("RETVAL = $val ; intval = $ival ; floatval = $fval ; string = $sval");

mssql_close($conn);
}
else
print("ooops!");

mssql_execute만 호출시에는 RETVAL 값이 넘어오지 않는다.
꼭 mssql_next_result를 사용해야만 넘어온다.

댓글목록

등록된 댓글이 없습니다.

회원로그인

접속자집계

오늘
258
어제
225
최대
1,347
전체
155,017
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.