我似乎在插入一行兩次MySQL有一些困難。 - 基本上,我需要保存從遠程數據源檢索到的一些信息的本地副本。因此,當用戶查看來自遠程源的信息時,我會檢查是否有我需要存儲的信息的本地副本。如果我沒有本地副本,請添加該信息的記錄。 - 我遇到的問題是每個我會說20-30插入我得到一個副本。我使用NOW函數跟蹤插入和更新時間,並且兩個記錄似乎都是同時插入的。 這裏是我的PHP代碼,任何幫助將是非常讚賞,我很爲難:MySQL行插入兩次
// We have the location, see if we have a local record for that location
$idLocation = locationID_for_factualID($factual_id);
if(!$idLocation) {
// We do not have local information about the location, add it
$mysqli = open_mysql_connection();
$stmt = $mysqli->prepare("INSERT INTO Location (
factual_id,
dateAdded,
dateModified,
locationName,
latitude,
longitude)
VALUES (?, NOW(), NOW(), ?, ?, ?)");
if($stmt) {
$stmt->bind_param("ssdd",$factual_id, $location["name"], doubleval($location["latitude"]), doubleval($location["longitude"]));
$stmt->execute();
// Check if the location was added
if($stmt->affected_rows == 1){
$idLocation = locationID_for_factualID($factual_id);
}
$stmt->close();
$mysqli->close();
}
else {
return FALSE;
}
}
下面是兩行,似乎是插入背靠背:
idLocation | factual_id | dateAdded | dateModified | locationName | latitude | longitude
520 | 5f79360f-330f-4035-ae75-e872ea14cfdd | 2013-04-09 14:36:55 | 2013-04-09 14:36:55 | Quiznos | 40.1802 | -74.0258
521 | 5f79360f-330f-4035-ae75-e872ea14cfdd | 2013-04-09 14:36:55 | 2013-04-09 14:36:55 | Quiznos | 40.1802 | -74.0258
'locationID_for_factualID'在做什麼? – 2013-04-09 14:55:25
如果找到包含事實ID的行,則locationID_for_factualID返回Location.idLocation,否則返回FALSE。所以基本上,如果該行存在,它會返回該位置的本地ID,否則返回FALSE。 – dbrateris 2013-04-09 15:00:48