我有一个带有自动递增主键 (UID) 的 MySQL 表。用户可以通过 PHP 表单在此表中显示一条记录,其中 UID 是 $_GET 变量。我希望数据库更新所选记录(如果存在),但每次用户点击提交时,都会创建一条新记录。这是我迄今为止尝试过的:
//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);
这行不通。我是否需要表格中的另一个唯一键,还是我遗漏了一些明显的东西?