我有一个带有自动递增主键(UID)的MySQL表。用户可以通过PHP表单在此表中创建一条记录,其中UID是$ _GET变量。我希望数据库更新所选记录(如果存在),但每次用户点击提交时,都会创建一条新记录。这是我迄今为止所尝试的:使用自动递增字段更新MySQL记录为PK
//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);
这是行不通的。我是否需要另一个独特的钥匙,或者我错过了一些明显的东西?
*认真*考虑将日期和时间存储为单个值。 – Strawberry
如果日期和时间数据类型都可用,则有时候需要单独存储日期和时间数据类型。这完全取决于情况。 –
@Strawberry:这不能回答我的问题。 – Chris