我有一個帶有自動遞增主鍵(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