从php执行时SQL Server存储过程错误

时间:2010-10-15 18:12:35

标签: php sql sql-server

我正在尝试从php执行存储过程。

在php代码中iam向存储过程发送一个整数参数

$orderId =824;
$result =mssql_bind($sp, "@orderID", $orderId, SQLINT1, true, false);

我收到错误

mssql_execute()[function.mssql-execute]:message:形式参数“@orderID”未声明为OUTPUT参数,而是在请求的输出中传递的实际参数。 (严重程度16)

任何人都可以说出原因

2 个答案:

答案 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 ...