2016-08-25 14 views
0

Leave Requestと呼ばれるテーブルから2つのフィールドを更新したいのですが、送信ボタンをクリックします。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)の使用法を確認してください。また、 'UPDATE dbo。[TABLE $ Leave Request]'の直後に 'SET'がありません。 – 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

私は 'Johson'という名前を$ _POST ['name']のようなポスト変数に置き換えますが、それはうまくいきません – user3315848

+1

それは問題ありませんが、クエリが間違っていると思います。そして、テーブル名を変更して、単語の間に空白がなく、ベストプラクティスではないようにします。 –

関連する問題