SQL 使用 SQL SRV (Php) 时查询执行错误

SQL Query Execute error when using SQL SRV (Php)

我正在尝试执行以下查询,但它提供了一个我找不到的语法错误。感谢您帮助解决问题。

错误

Array ( [0] => Array ( [0] => 07002 [SQLSTATE] => 07002 [1] => 0 [code] => 0 [2] => [Microsoft][ODBC Driver 17 for SQL Server]COUNT field incorrect or syntax error [message] => [Microsoft][ODBC Driver 17 for SQL Server]COUNT field incorrect or syntax error ) )

<?php

session_start();
require_once '../../../config/dbconfig.php';

$sql = "EXEC    smeProBizInspecInsert
@strLeadRefNo   =  ? ,
@strCustName =  ? ,                 
@strEnteredBy  =  ? , 
@dtmEnteredDate =  '',
@strInspectStatus = 'SMS06',
@strBranch = ? ";

$stmt=sqlsrv_prepare($conn,$sql,array(&$_POST['strLeadRefNo'],&$_POST['customerName'],&$_SESSION['NAME'], &$_SESSION['BRANCH'])); 
sqlsrv_execute($stmt);

$stmt = sqlsrv_prepare($conn, $sql);
if (!sqlsrv_execute($stmt)) {die( print_r( sqlsrv_errors(), true) );}
else {echo json_encode("success");} 

?>

当我通过变量传递@dtmEnteredDate 和@strInspectStatus 时,问题已解决。另外我错误地保留了以下内容,导致了错误。

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

<?php

session_start();
require_once '../../../config/dbconfig.php';


$sql = "EXEC    smeProBizInspecInsert
@strLeadRefNo   =  ? ,
@strCustName =  ? ,                 
@strEnteredBy  =  ? , 
@dtmEnteredDate =  ? ,
@strInspectStatus = ?,
@strBranch = ? ";

$edate = '';
$status = 'SMS06';

$stmt=sqlsrv_prepare($conn,$sql,array(&$_POST['strLeadRefNo'],&$_POST['customerName'],&$_SESSION['NAME'], 
&$edate, &$status ,&$_SESSION['BRANCH'])); 

if (!sqlsrv_execute($stmt)) {

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


}


else 
{

  echo json_encode("success");

} 


?>