Java编组参数计数不匹配_PHP:参数计数和参数计数不匹配

我的php应用程序正在使用MS SQLSrv驱动程序。在我的数据库中调用存储过程时,运行sqlsrv_execute()后出现以下错误:参数计数和参数计数不匹配。我的代码如下:

$sql = "{call myStoredProcedure(?, ?, ?, ?, ?, ?)}";

//Passing by reference instead of value, otherwise sqlsrv_prepare is not happy

$params = array(array(&$param1, SQLSRV_PARAM_IN),

array(&$param2, SQLSRV_PARAM_IN),

array(&$param3, SQLSRV_PARAM_IN),

array(&$param4, SQLSRV_PARAM_IN),

array(&$param5, SQLSRV_PARAM_IN),

array(&$param6, SQLSRV_PARAM_OUT)

);

/* Create the statement. */

$stmt = sqlsrv_prepare( $conn, $sql, $params);

if( $stmt )

{

echo "Statement prepared.\n";

}

else

{

echo "Error in preparing statement.\n";

die( print_r( sqlsrv_errors(), true));

}

//TODO: Resolve error, "param count and argument count don't match"

$stmt = sqlsrv_execute($conn, $sql, $params);

//This statement will run, but no rows are returned and rowCount is false.

//$stmt = sqlsrv_query($conn, $sql, $params);

$rowCount = sqlsrv_num_rows( $stmt );

$numFields = sqlsrv_num_fields( $stmt );

//Rest of code...我花了一个小时,并通过PHP.Net和Microsoft文档进行了梳理。有没有其他人遇到类似的错误?任何帮助表示赞赏。

是的,我检查了我的参数计数,我的存储过程需要6个参数。

更新:

存储过程片段:

ALTER PROCEDURE [dbo].[myStoredProcedure]

@param1 VARCHAR(64),

@param2 VARCHAR(64),

@param3 DATETIME,

@param4 DATETIME,

@param5 INT = 9,

@param6 INT OUTPUT

AS

BEGIN

//Do stuff

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值