2

私の人生では、更新ステートメントがテーブルの行を更新せず、代わりに新しい行を作成する理由を理解できません。一意の識別子でauto_incrementであるID列がありますが、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 に答える