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를 사용해야만 넘어온다.
댓글목록
등록된 댓글이 없습니다.