2014-05-23 71 views
0

不知何故,我必須在某個地方犯錯,似乎找不到正確的解決方案,必須做錯事。我想從PHP頁面更新名爲Celebrity的Azure SQL表,但它不更新。你能請幫助我,或告訴我什麼我做錯了SQL更新表(使用PHP的Azure)

<?php 
try { 
$conn = new PDO("sqlsrv:Server= $host ; Database = $db ", $user, $pwd); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch(Exception $e){ 
die(var_dump($e)); 
} 

if(!empty($_POST)) { 
try { 
$FirstName = $_POST['FirstName']; 
$LastName = $_POST['LastName']; 
$id = $_POST['id_celebrity']; 

$sql_update = "UPDATE 
     Celebrity 
    SET 
     (FirstName, LastName) 
    VALUES 
     (?,?)      
    WHERE 
     id_celebrity='$id'"; 

$stmt = $conn->prepare($sql_update); 
$stmt->bindValue(1, $FirstName); 
$stmt->bindValue(2, $LastName); 
$stmt->execute(); 
} 
catch(Exception $e) { 
die(var_dump($e)); 
} 
echo "Celebrity Updated in DB!"; 
} 

?> 

這裏是正在使用的指令,這就是我從AZURE服務器返回:

object(PDOException)#3 (8) { ["message":protected]=> string(97) "SQLSTATE[42000]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near '('." ["string":"Exception":private]=> string(0) "" ["code":protected]=> string(5) "42000" ["file":protected]=> string(62) "D:\home\site\wwwroot\CelebrityOverview\CelebrityEditResult.php" ["line":protected]=> int(57) ["trace":"Exception":private]=> array(1) { [0]=> array(6) { ["file"]=> string(62) "D:\home\site\wwwroot\CelebrityOverview\CelebrityEditResult.php" ["line"]=> int(57) ["function"]=> string(7) "execute" ["class"]=> string(12) "PDOStatement" ["type"]=> string(2) "->" ["args"]=> array(0) { } } } ["previous":"Exception":private]=> NULL ["errorInfo"]=> array(3) { [0]=> string(5) "42000" [1]=> int(102) [2]=> string(80) "[Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near '('." } } 

回答

1

試試這個:

$sql_update = "UPDATE Celebrity 
SET FirstName = ?, LastName = ?    
WHERE id_celebrity='$id'"; 

分配各列之間用逗號的值,UPDATE標記是不一樣的INSERT

+1

它的工作!非常感謝:-) –

+0

不客氣:) – Jonast92