Tom: Doppeleintrag in DB vermeiden

Beitrag lesen

Hello,

Eine Idee:
Ein kombinierter eindeutiger Index über die Spalten der E-Mail-Adresse und Party-Nummer. Mache ein INSERT. Rechne damit, dass Fehler auftreten.
Kein Fehler: Erfolgreiche Anmeldung
Fehler "Indexverletzung": Versuch einer Doppelanmeldung
Sonstiger Fehler: Was auch immer.

Kleine Ergänzung:

mysql_errno() und das Resultset sollte man immer abfragen.
Nur wenn mysql_errno() == 0 ist, konnte das Statement wunschgemäßausgeführt werden.
Aber auch wenn es == 0 ist, muss nicht unbedingt 'was passiert werden.
Dann sind ggf. noch die mysql_affected_rows() von Interesse.

Beispiel:  delete from $tablename where id_party = $id_party and email = $email;  #[1]

Wenn kein Treffer vorhanden war, konnte das Statement trotzdem fehlerfrei ausgeführt werden.
Allerdings muss das nicht unbedingt das erwartete Ergebnis gewesen sein.

[1] $id_party vorher auf unsigned Integer geprüft
    $email vorher mit mysql_[real_]escape_string() behandelt

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau