2010-12-12 12 views
2

In meinem PHP/MySQL Code füge ich einen neuen Datensatz in eine Tabelle (InnoDB) ein, die viele UNIQUE Spaltenschlüssel hat. Wenn das Einfügen fehlschlägt (mit ER_DUP_ENTRY), muss wissen, welcher Wert der Spalte nicht eindeutig ist.parse mysql Fehler msg - ist es der richtige Weg?

Ich wurde gesagt, dass, um dies zu erreichen, müssen Sie Wert von% d aus Fehlermeldung erhalten Sie erhalten: "Eintrag '% s' für Schlüssel% d".

Dies sollte funktionieren, aber ich mag die Lösung nicht. Parsen/Regex, das mit einem String übereinstimmt, führt zu unnötiger Komplexität für einfache Aufgaben, die ich immer zu vermeiden versuche. Jetzt die Frage: Ist das der richtige Weg? Gibt es keine bessere Lösung?

Antwort

0

Es ist wahrscheinlich möglich, nicht nur die Fehlermeldung, sondern auch den entsprechenden Fehlercode zu erhalten. Siehe zum Beispiel die results for PHP functions containing errno.

+0

Ich meinte Fehlermeldung nicht Fehlercode. Ich habe das Thema gewechselt. – spajak

+0

@spajak: Ich denke, es gibt keine andere Möglichkeit, das zu tun. Aber Sie könnten 'sscanf' als Inverse von' sprintf' versuchen. – Gumbo

Verwandte Themen