1

自動インクリメント主キー (UID) を持つ MySQL テーブルがあります。ユーザーは、UID が $_GET 変数である PHP フォームを介して、このテーブルのレコードを表示できます。選択したレコードが存在する場合はデータベースに更新させたいのですが、ユーザーが送信を押すたびに新しいレコードが作成されます。これは私がこれまでに試したことです:

//Present the form
$form = $con->prepare("SELECT Name, Date, Time FROM forms WHERE UID = :uid");
$data = array('uid'=>$_GET['uid']);
$form->execute($data);
$row = $form->fetch(PDO::FETCH_ASSOC);    

//Write new record to database. If the UID exists, update the record.
INSERT INTO forms (Name, Date, Time) VALUES (:name, :date, :time)

ON DUPLICATE KEY UPDATE Name=VALUES(Name),Date=VALUES(Date),Time=VALUES(Time);

これはうまくいきません。テーブルに別の一意のキーが必要ですか、それとも明らかな何かが欠けていますか?

4

1 に答える 1