Frage

Ein Insert ich die eindeutige Einschränkung mysql_errno am Fang () 1062.

Das funktioniert gut, aber ich möchte die bestehende Zeile wiedereinzusetzen zu finden oder zu modifizieren.

Ist es Methode, um den Zeilen-ID zu erhalten, auf Einsatz scheitern? Ich versuchte mysql_insert_id () aber klar, dass nur die Zeile zurückkehren würde ich (oder nicht zu Einsatz) bin Einsetzen daher I 0 erhalten.

Gibt es keine andere Wahl, als eine andere mysql_query auszustellen und einfach ein Auswahl auf dem doppelten Wert durchführen?

Ich will nur dort sicher nicht besser, schneller, sparsamer Weg, dies zu tun.

War es hilfreich?

Lösung

Wenn Sie versuchen, eine Zeile, wenn neue oder Aktualisierungswert vorhandenen dann einfügen INSERT ... ON DUPLICATE KEY UPDATE Syntax , wenn es Einschränkungen, wie DELETE INTO REPLACE beteiligt sind und dann INSERT.

Andere Tipps

würden Sie haben die Tabelle für alle „einzigartigen“ Schlüssel zu überprüfen (SHOW CREATE TABLE wird sie alle aufzulisten), und Abfrage dann die Tabelle für die zugehörigen Werte in der INSERT-Abfrage Sie versucht hatte. Wenn Sie also das Einfügen von Feldern A, B, C, D und B, C hat die eindeutigen Schlüssel auf sich, dann:

SELECT id, B, C FROM table WHERE B=$B and C=$C;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top