verhindert doppelte Zeileneinfügung in PHP / MySQL

7

Wie verhindern Sie die Eingabe von doppelten Datensätzen in PHP mysql? Validierung der Eingabe vor dem Einfügen in die Tabelle.

Ich erstelle derzeit einen Benutzerregistrierungsabschnitt für meine Website, möchte diesen jedoch einen Fehler anzeigen, wenn ein doppelter Benutzername oder eine E-Mail-Adresse in der Datenbank gefunden wird.

BEARBEITEN
Das ist, was ich bis jetzt Zeilen einfügen muss ... wie würde ich diese beiden Antworten hier umsetzen:

%Vor%

Ich vermute, dass ich alles in einer if ... else-Anweisung implementieren könnte?

    
methuselah 25.02.2010, 02:28
quelle

3 Antworten

1

Ich habe die SQL-Anweisung zusammen mit einer if else-Anweisung verwendet.

%Vor%

dann

%Vor%

zeigt eine Fehlermeldung an, um zu verhindern, dass Duplikate hinzugefügt werden

andernfalls erlauben Sie Datenbank einfügen

    
methuselah 25.02.2010, 03:11
quelle
17

Definieren Sie eindeutige Einschränkungen für die Spalten Benutzername und E-Mail:

%Vor%

Wenn der Wert, der versucht wird, eingefügt oder aktualisiert zu werden, bereits in der Tabelle vorhanden ist, gibt MySQL einen Fehler zurück, der besagt, dass die Abfrage die entsprechende eindeutige Einschränkung (möglicherweise beide) verletzt. Es liegt an Ihnen, PHP so einzurichten, dass es sich elegant verhält.

    
OMG Ponies 25.02.2010 02:34
quelle
3

Führen Sie vor dem Einfügen eine SQL-Anweisung wie

aus %Vor%

(mit parametrisiertem SQL ) und die Zahl zählen der Zeilen zurückgegeben.

Wenn es mehr als 0 gibt, gibt es ein Duplikat.

OMG Ponies schlug Beschränkungen für diese beiden Felder vor, was auch eine gute Idee ist, um zu verhindern, dass Sie einen Fehler mit der Datenbank machen. Wenn Sie jedoch eine duplizierte Datei einfügen, erhalten Sie mit dieser Einschränkung eine Datenbankfehlermeldung, die Sie möglicherweise nicht analysieren möchten.

    
Jesse Millikan 25.02.2010 02:34
quelle

Tags und Links