2

对于我的生活,我无法弄清楚为什么我的更新语句不会更新表行,而是创建一个新行。我有一个 ID 列,它是唯一标识符并且是 auto_increment,我只是不确定您是否可以按照我尝试的方式更新 auto_incremented 数据集。

我有一个表单,它将数据库中的数据回显到字段中,然后使用它来编辑字段并更新它们。

编码:

<?php
$EntryID = $_GET['Eid'];
$IDlist = mysql_query("SELECT * FROM BD WHERE Id='$EntryID'");
$IDresults = mysql_fetch_array($IDlist);

$update_query = "UPDATE `BD` SET `Id` ='$IDresults['Id']',`EntryTitle` = '$MyTitle',`EntryDescription` = '$MyDescription',`Category` = '$MyCategory' WHERE `Id` ='$EntryID'";
mysql_query($update_query);

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
else{
header('location: /admin/bd-edit-entry.php?sub=1');
exit();
  }
mysql_close($con);
?>

任何帮助或建议都会很棒。

4

1 回答 1

1
SET `Id` ='$IDresults['Id']'

应该是:

SET `Id` ='$IDresults[Id]'

或者

SET `Id` ='{$IDresults['Id']}'

如果您打开错误报告,您应该会收到有关错误索引的错误。

或者您可以完全不更新此列,因为此列不会更改。

于 2012-11-09T00:14:03.107 回答