У меня возникают некоторые трудности с тем, что MySQL, похоже, дважды вставляет строку. – В принципе, мне нужно сохранить локальную копию некоторой информации, которая извлекается из удаленного источника данных. Поэтому, когда пользователь просматривает информацию из удаленного источника, я проверяю, есть ли у меня локальная копия информации, которую мне нужно хранить. Если у меня нет локальной копии, я добавляю запись этой информации. – Проблема, с которой я сталкиваюсь, заключается в том, что каждый, что я сказал бы 20-30 вставок, получаю дубликат. Я отслеживаю время вставки и обновления с помощью функции NOW, и обе записи, кажется, вставляются одновременно. Вот мой PHP-код, любая помощь будет очень оценена, я в тупике:
// 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