我一直想不通为什么我的更新语句不会更新表行而是创建一个新行。我有一个 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);
?>
任何帮助或建议都会很棒。
最佳答案
SET `Id` ='$IDresults['Id']'
应该是:
SET `Id` ='$IDresults[Id]'
或
SET `Id` ='{$IDresults['Id']}'
如果您打开错误报告,您应该会收到有关错误索引的错误。
或者您可以完全不更新此列,因为此列不会更改。
关于php - 更新语句不更新表而是将新条目插入表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13299921/