PHP - 使用2个输出参数执行Sql Server存储过程

时间:2015-05-26 15:46:50

标签: sql-server

我正在与第三方公司合作,以便将网络应用与他们的Windows应用程序集成。

要将必要的数据写入他们的数据库,他们给了我以下的程序:

Declare @SavedOK int, @Message varchar(8000)
Exec pbProcessTransactions
  @SavedOK output,
  @Message output

我必须用PHP执行它,这就是我写我的应用程序的方式,为此我使用了我在micrsoft文档上找到的东西。

我的代码执行带有2个输出参数的存储过程是:

$tsql_callSP = "{call pbProcessTransactions(?, ? )}";

$SavedOK = '';
settype($SavedOK, "integer");
$Message = '';
settype($Message, "string");
$raspuns = '';

$params = array(
array($SavedOK, SQLSRV_PARAM_INOUT),
array($Message, SQLSRV_PARAM_INOUT)
);

/* Execute the query. */
$stmt3 = sqlsrv_query( $conn, $tsql_callSP, $params);

if( $stmt3 === false ) {
echo "Error in executing statement 3.\n";
die( print_r( sqlsrv_errors(), true)); }

/* Display the value of the output parameters. */
while ($obj=sqlsrv_fetch_object($stmt3)) {
// SET PARAMETERS - SET TERMS
echo $obj->SavedOK;
echo $obj->Message;
}
/*Free the statement and connection resources. */
sqlsrv_free_stmt( $stmt3);

/*WHERE SavedOK and Message are the 2 output parameters wich will display     various info depeding if the procedure executes normally or not , SavedOK will display 1 or 0 , 1 if it's ok 0 if not and Message will display the error message if SavedOK is 0 */

我的问题是该语句总是错误的,它始终显示"执行语句3" 时出错,如果SavedOK为1或0,我看不到输出是信息。

如果某人有一个想法,那将是真正的贬值。

谢谢!

0 个答案:

没有答案