我正在尝试从php执行存储过程。
在php代码中iam向存储过程发送一个整数参数
$orderId =824;
$result =mssql_bind($sp, "@orderID", $orderId, SQLINT1, true, false);
我收到错误
mssql_execute()[function.mssql-execute]:message:形式参数“@orderID”未声明为OUTPUT参数,而是在请求的输出中传递的实际参数。 (严重程度16)
任何人都可以说出原因
答案 0 :(得分:3)
document of mssql_bind将其签名为:
bool mssql_bind ( resource $stmt , string $param_name , mixed &$var , int $type [, bool $is_output = false [, bool $is_null = false [, int $maxlen = -1 ]]] )
所以你的问题是你将$is_output
设置为真。
使用
$orderId =824;
$result =mssql_bind($sp, "@orderID", $orderId, SQLINT1, false, false);
答案 1 :(得分:0)
您必须创建存储过程,以便将参数指示为OUTPUT变量。
DECLARE MyProc (@orderID int OUTPUT) AS ...