一个例子: 假如我们用下面存储过程:
CREATE PROCEDURE [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代码:
<?php
$conn=mssql_connect("myhost","user","pwd");
if ($conn) {
mssql_select_db("mydb",$conn); $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] . "
" );
print ("RETVAL = $val ; intval = $ival ; floatval = $fval ; string = $sval"); mssql_close($conn);
}
else print("ooops!");
?>
CREATE PROCEDURE [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代码:
<?php
$conn=mssql_connect("myhost","user","pwd");
if ($conn) {
mssql_select_db("mydb",$conn); $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] . "
" );
print ("RETVAL = $val ; intval = $ival ; floatval = $fval ; string = $sval"); mssql_close($conn);
}
else print("ooops!");
?>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货