SQL Ошибка выполнения запроса при использовании SQL SRV (Php) - PullRequest
1 голос
/ 15 февраля 2020

Я пытаюсь выполнить следующий запрос, но он содержит синтаксическую ошибку, которую я не смог найти. Благодарим Вас за помощь в решении проблемы.

Ошибка

Массив ([0] => Массив ([0] => 07002 [SQLSTATE] => 07002 [1] => 0 [] код] => 0 [2] => [Microsoft] [ODB C Драйвер 17 для SQL Сервер] Поле COUNT неверно или синтаксическая ошибка [сообщение] => [Microsoft] [ODB C Драйвер 17 для SQL Сервер] Поле COUNT неверно или синтаксическая ошибка))

<?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");} 

?>

1 Ответ

1 голос
/ 15 февраля 2020

Проблема была решена, когда я передал @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");

} 


?>
...