2013-05-29 87 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