2016-05-09 15 views
1

Ich habe ein Caching-Skript, das eine Reihe von Daten von einer SOAP-API mit PHP (Cron Job alle 5 Minuten) anfordert. Dieses Skript fordert und speichert einen Kunden id und name.MySQL - Kann 'EINFÜGEN - DUPLIKAT KEY UPDATE' verursachen Datenverlust

Die Tabelle, die die Informationen, die in API hat 3 Spalten gespeichert ist:

'id' = int, Primary_key 
'name' = varchar(255) 
'paying' = bool 

Es 10 ist um (in 80), den Kunden mit dem bool paying Satz auf true. Die Spalten paying aller Kunden werden jedoch immer wieder auf 0 zurückgesetzt.

Also ... Kann die folgende Abfrage die Spalte paying unter allen Umständen ändern?

INSERT INTO customer(`id`, `name`) VALUES ('$escapedId','$escapedName') ON DUPLICATE KEY UPDATE `name`='$escapedName' 
+0

Haben Sie einen eindeutigen Index für die Kundentabelle in Ihrer Datenbank? oder irgendein anderer Index? – kejsu

+0

@kejsu Die ID-Spalte ist der Primärschlüssel, die Spalten ID und Name werden von der API bereitgestellt. – kgongonowdoe

Antwort

1

Diese Abfrage konnte den Feldstatus 'Bezahlen' nicht ändern.

Daher ist der Grund wahrscheinlich der andere Code, der den Wert auf 0 setzt oder alle Datensätze löscht.