Wie Sie mit PHP in MySQL doppelte Einträge vermeiden

May 31

Viele PHP-Anwendungen können Benutzer Daten eingeben, die dann in eine MySQL-Datenbank eingefügt wird. Es ist wichtig für diese Anwendungen zu überprüfen, ob ein Datensatz bereits in der MySQL-Datenbank vorhanden ist, bevor Sie sie hinzufügen. Ein reaktiver Weg dazu ist, legen Sie einen eindeutigen Index für das Schlüsselfeld in der MySQL-Datenbank, fügen Sie den Datensatz und überprüfen um zu sehen, wenn ein Fehler aufgetreten. Allerdings ist der anmutige, proaktive Ansatz für einen doppelten Datensatz überprüfen, bevor Sie die Datenbank Daten hinzufügen.

Anweisungen

1 Starten Sie einen Editor und erstellen Sie eine neue PHP-Skript-Datei. Geben Sie beispielsweise:

Nano adddata.php

2 Erstellen Sie das HTML-Formular, um Benutzereingaben akzeptieren. Legen Sie die Methode auf "post" und die Aktion "update.php" die eingereichten Ergebnisse in eine Datei "update.php" veröffentlichen die nächste erstellte. Geben Sie beispielsweise:

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional / / EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html Xmlns = "http://www.w3.org/1999/xhtml" >

< Head >

< Meta http-Equiv = "Content-Type" Content = "Text/html; Charset = Utf-8 "/ >

< Title > Data Entry/Titel >

< / head >

< Körper >

< bilden Methode = "post" action="update.php" >

< Eingang Typ = "hidden" Name = "abgeschlossen" Value = "1" / >

< p > Kundennummer: < Eingang Typ = "Text" Name = "KdNr" Size = "10" / >< / p >

< p > Customer Name: < Eingang Typ = "Text" Name = "Kundenname" Size = "30" / >< / p >

< p >< Eingang Typ = "submit" Name = "submit" Value = "submit" / >< / p >

< / form >

< / body >

< / html >

3 Beenden Sie den Editor, und speichern Sie die Datei. Starten Sie den Editor wieder und erstellen Sie die Datei "update.php". Geben Sie beispielsweise:

Nano-update.php

4 Überprüfen Sie das ausgeblendetes Feld-Formular, um sicherzustellen, dass die Datei "update.php" aus dem "post"-Betrieb aufgerufen wurde. Geben Sie beispielsweise:

<? Php

$completed = $_POST ['abgeschlossen'];

Wenn ($completed! = "1") sterben ("< p > Formular nicht ausgefüllt! </p >");

5 Extrahieren Sie die Kundennummer und Name des Kunden, aus den gebuchten Ergebnissen. Überprüfen Sie um sicherzustellen, dass jeder Wert Daten enthält. Geben Sie beispielsweise:

$number = (isset($_POST['custno'])? $_POST ['Custno']: "";

$name = (Isset ($_POST ['Kundenname']? $_POST ['Kundenname']: "";

Wenn ($number == "" || $name == "") sterben ("< p > Formular nicht ausgefüllt richtig! </p >");

6 Mit dem MySQL-Server verbinden Sie und wählen Sie die gewünschte Datenbank. Geben Sie beispielsweise:

$dbc = Mysql_connect ("Localhost", "Username", "Passwort") oder sterben ("< p > konnte nicht zum Server verbinden! Fehler ist ". mysql_error());

$db = mysql_select_db("customers");

7 Erstellen und Ausführen einer Abfrage auf die Datenbank, die sucht nach der Kundennummer, die Sie hinzufügen sollen. Stellen Sie sicher, dass Sie richtig entkommen Benutzer Eingabezeichenfolgen mit "Mysql_real_escape_string." Überprüfen Sie den Rückgabewert und beenden Sie, wenn die Kundennummer bereits vorhanden ist. Geben Sie beispielsweise:

$query = "SELECT Custno FROM Kunden WHERE Brauch ="'. mysql_real_escape_string($Number). '"';

$result = mysql_query($query);

Wenn ($result & & mysql_num_rows($result) > 0) sterben ("< p > Kunde existiert bereits! </p >");

8 Erstellen und Ausführen einer Abfrage, um den neuen Kunden in die Datenbank einfügen. Stellen Sie sicher, dass Sie richtig entkommen Benutzer Eingabezeichenfolgen mit "Mysql_real_escape_string." Geben Sie beispielsweise:

$query = "INSERT INTO Kunden (Custno, Kundenname) VALUES ("'. mysql_real_escape_string($Number). '", "' . mysql_real_escape_string($Name). '")';

$result = mysql_query($query);

Wenn (! $result) sterben ("< p > Fehler beim Einfügen Kundendatensatz! </p >");

Echo "< p > Kunden erfolgreich hinzugefügt! </p >";

? >