2
在寫我的問題(HOWTO:插入一個新的條目,如果它已經存在,更新它),我發現在Related Questions
一些答案:DBD :: SQLite的:插入或更新 - 問題
$sql = "INSERT OR REPLACE INTO $table (Id, Name, Rating) VALUES(?, ?, ?)";
$sth_rating = $dbh->prepare($sql);
$sth_rating->execute($id, $name, $rating);
。
$sql = "INSERT OR IGNORE INTO $table (Id, Name, Rating) VALUES (?, ?, ?)";
$sth_rating = $dbh->prepare($sql);
$sth_rating->execute($id, $name, $rating);
$sql = "UPDATE $table SET Rating = ? WHERE Id = ?";
$sth_rating = $dbh->prepare($sql);
$sth_rating->execute($rating, $id);
第二種方法比第一種方法更安全嗎?
你想要完全替換現有場或者如果它存在,只需要更新其評級? http://en.wikipedia.org/wiki/Upsert – Schwern 2011-05-11 07:19:41
除「評級」之外的所有字段都來自另一個表,並且始終是相同的(對於該ID)。 通常情況下,條目將被添加,但如果它們已經存在,則應調整可能的新「評估」值。 – 2011-05-11 07:56:26