2017-07-19 320 views
0

我正在開發中一旦按鈕被點擊網頁,但是下一個錯誤在表上的數據變化出來:COUNT字段不正確或語法錯誤PHP內

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

) 

我查看代碼幾個小時,但我還沒有找到錯字。這是代碼:

<?php 
ini_set('max_execution_time', 300); 
$serverName = "serverName\SQLEXPRESS"; 
$connectionInfo = array("Database"=>"dataBase", "UID"=>"user", "PWD"=>"pass"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 

if($conn === false) {         
die(print_r(sqlsrv_errors(), true)); 
} 

$sql1 = "DECLARE @a INT ". PHP_EOL; 
$sql1 .= "SELECT @a = condLot FROM productos WHERE prodID = ? ". PHP_EOL; 
$sql1 .= "IF (@a > 0) ". PHP_EOL; 
$sql1 .= "UPDATE productos SET estadoAl = (estadoAl + 1), condLot = (condLot - 1) FROM productos WHERE prodID = ? ". PHP_EOL; 
$sql1 .= "ELSE ". PHP_EOL; 
$sql1 .= "UPDATE productos SET estadoAl = (estadoAl + 1) FROM productos WHERE prodID = ? ". PHP_EOL; 
$var = array($_GET["idProd"]); 


$stmt1 = sqlsrv_query($conn, $sql1, $var); 
if($stmt1 === false) { 
    die(print_r(sqlsrv_errors(), true)); 
} 
+0

我敢肯定,你的更新查詢的語法不更新查詢 – Ravi

+0

刪除'FROM productos'的作品,但我解釋什麼是錯的,請。 –

+0

@Ravi在SQL Server MS正確 – Tilan04

回答

3

更新查詢沒有from子句。嘗試下面的代碼。

$sql1 .= "UPDATE productos SET estadoAl = (estadoAl + 1), condLot = (condLot - 1) WHERE prodID = ? ". PHP_EOL; 
+0

謝謝。就像我在評論中寫的一樣,我不明白爲什麼在SQL Server MS中使用「FROM」。 – Tilan04

+0

據我所知,即使SQL Server應該拋出一個錯誤,如果你使用'From'子句。無論它是否有效,技術上來說,Update查詢都沒有from子句。 –