2013-05-29 82 views
1

我想更新我的數據庫,該代碼在另一臺工作不錯,但在這裏我有一個錯誤,我看到這條消息:更新MySQL數據庫和PHP

您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的正確語法手冊「WHERE id =」 588「」 4行

<?php 
$sel_item = "SELECT * FROM `employees` where id=".$_GET['emp_id']; 
$done_item = mysql_query($sel_item); 
$get_item = mysql_fetch_array($done_item); 

if(isset($_POST['edit'])){ 
    $upd= "UPDATE `employees` SET 
    `emp_no`='".$_POST['name']."', 
    WHERE `id`='".$_POST['id'].""; 
    $do_upd = mysql_query($upd) or die(mysql_error()); 
} 
?> 


<form action="" method="post" enctype="multipart/form-data"> 

     <table class="append-row" width="100%" border="0" bgcolor="#006699" height="60px" align="left" 
     style="padding:0 30px;"> 
      <tr> 

      <td><input type="text" name="name" id="name" placeholder="name" value="<? php echo $get_item['emp_no'];?>"></td> 
      <input type="hidden" name="id" id="id" value="<?php echo $get_item['id'];?>" > 

      <td><input type="submit" name="edit" id="edit" value="edite"></td>  

     </tr> 

     </table> 

    </form> 
+1

你以前'逗號WHERE' – StampyCode

+2

有一個逗號後'$ _ POST [ 'name']。「',' - 你需要刪除它。 – andrewsi

+0

確保你在該表中有'id'字段 – mgraph

回答

3

你缺少後,$ _ POST [右單引號」 id']在UPDATE語句中,並且在WHERE條件之前您也有一個逗號。

嘗試:

$upd= "UPDATE `employees` SET `emp_no`='".$_POST['name']."' WHERE `id`='".$_POST['id']."'"; 
+0

這是好的但不安全的 –

+0

同意和好點。用戶輸入($ _POST)應該在用於查詢之前總是被驗證。我的答案只是爲了讓查詢工作。 – Dan

1
$upd= "UPDATE `employees` SET `emp_no`='".$_POST['name']."', WHERE `id`='".$_POST['id'].""; 
$do_upd = mysql_query($upd) or die(mysql_error()); 

你已經錯過了一個'應該是......

$upd= "UPDATE `employees` SET `emp_no`='".$_POST['name']."', WHERE `id`='".$_POST['id']."'"; 

你也不需要之前的逗號 '其中'

1

放棄舊學校的Mysql並使用PDO讓你和你的數據庫更容易,但你的問題是在之前的逗號聲明。

$sql = $pdo->prepare("UPDATE employees SET emp_no = ? WHERE id = ?"); 
$sql->execute(array($_POST['name'], $_POST['id'])); 

由於個人喜好,你不應該使用波浪號',圍繞你的項目,如果是這樣,你不使用關鍵字,那麼你可能應該重命名列/表/數據庫。

0

emp_no = ' 「$ _ POST [ '名'。」',

逗號是打破你的SQL