Ich benutze PHP und MySQL.Wie kann ich wissen, ob die letzte Operation insert oder update wurde, wenn in mysql und php ein duplicate update verwendet wurde?
Wenn ich eine INSERT ON DUPLICATE UPDATE
SQL-Anweisung verwende, woher weiß ich dann, ob die letzte Operation eine erfolgreiche Einfügung war und nicht eine Aktualisierung oder eine fehlgeschlagene Einfügung?
Die Annahmen sind die Tabelle in Frage verwendet keine automatische Inkrement, so kann ich nicht mysql_insert_id
verwenden, um mir zu helfen, herauszufinden.
Würde mysql_affected_rows() wirklich 2 Return on UPDATE zurückkehren wird? –
Ich habe mehrere Tests durchgeführt, und das ist es, was es für mich jedes Mal zurückgegeben hat, wenn es ein Update statt eines Einsatzes gemacht hat. Ob ich eine Spalte oder alle Spalten aktualisiert habe. Ich nehme an, es ist aus dem Grund, sagte ich, aber ich bin mir nicht ganz sicher. – Cahlroisse
Es ist dokumentiert unter http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html Mit ON DUPLICATE KEY UPDATE ist der betroffenen Zeilen Wert pro Zeile 1, wenn die Zeile ist als neue Zeile eingefügt und 2 wenn eine bestehende Zeile aktualisiert wird. – dmercredi