2016-08-25 35 views
0

我想從一個名爲Leave Request的表中更新兩個字段,但是當我點擊提交按鈕時。php sqlsrv - 字段沒有更新

<?php 
$stmt = $pdo->prepare('UPDATE dbo.[TABLE$Leave Request] dbo.[KPMG$Leave Request].supAprrove_date=?,dbo.[TABLE$Leave Request].supAprrove=? WHERE  dbo.[TABLE$Leave Request].id=?'); 
$stmt->execute(array($adate, $approve, $id)); 

$adate = $_POST['supAprrove_date']; 
$approve =$_POST['supAprrove']; 
$id = $_POST['lid']; 
//$affected_rows = $stmt->rowCount(); 

?> 
<form id="form1" name="form1" method="post" action="pending_leave.php"> 
    <label> 
    <select name="supAprrove" id="supAprrove"> 
    <option value="1">Approve</option> 
    <option value="2">Reject</option> 
    </select> 
    </label> 
    <input name="supAprrove_date" type="hidden" id="supAprrove_date" value="<?php echo date('Y-m-d'); ?>" /> 
    <input type="hidden" name="lid" id="lid" value="<?php echo $data['id']; ?>"/> 
    <label> 
    <input type="submit" name="button" id="button" value="Submit" /> 
    </label> 
</form> 
+0

也就是說數據庫表如何名稱 – user3315848

+0

什麼是你的錯誤?看起來你不會處理來自'sqlsrv'的任何錯誤。請檢查['sqlsrv_errors']的使用情況(https://msdn.microsoft.com/en-us/library/cc296200(v = sql.105).aspx)。此外,'SET'在'UPDATE dbo。[TABLE $ Leave Request]'後面丟失。 – alalp

回答

0

創建一個SQL UPDATE語句的一個方法是

UPDATE table 
SET column1 = expression1, 
column2 = expression2, 
... 
[WHERE conditions]; 

例: 「?」

UPDATE employees 
SET last_name = 'Johnson' 
WHERE employee_id = 10; 

您正在使用準備好的語句,以便替換了 '約翰遜' 的一部分你就完成了。

的錯誤處理,你可以使用:

$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 

的部分PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION是拋出異常的關鍵。

更多關於PDO的錯誤處理:http://php.net/manual/en/pdo.error-handling.php

+0

我用$ _POST ['name']這樣的帖子變量替換名字'Johson',但它不起作用 – user3315848

+1

這很好,但我認爲你的查詢是錯誤的,所以試着改變查詢。我會改變表名,所以在單詞之間沒有空格,也不是最佳實踐。 –