我正在与第三方公司合作,以便将网络应用与他们的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,我看不到输出是信息。
如果某人有一个想法,那将是真正的贬值。
谢谢!