Hvordan at undgå gentagelser Entries med PHP i MySQL

January 18

Hvordan at undgå gentagelser Entries med PHP i MySQL

Mange PHP-applikationer vil give brugerne mulighed for at indtaste data, som indsættes derefter i en MySQL-database. Det er vigtigt, at disse programmer for at kontrollere, om en rekord eksisterer allerede i MySQL-databasen, før du tilføjer den. En reaktiv måde at gøre dette er at sætte et entydigt indeks på tasten felt i MySQL-database, tilsæt rekord og kontrollere, om der opstod en fejl. , Jo mere yndefulde, proaktiv tilgang er dog at kontrollere, om en dublet rekord, før du tilføjer data til databasen.

Vejledning


• Start en editor og oprette en ny PHP script-fil. Skriv f.eks: nano adddata.php

• Opret HMTL formular til at acceptere brugerinput. Indstil metoden til "post" og handlingen til "update.php" at skrive de indsendte resultater til en "update.php" fil, du vil skabe næste. Skriv f.eks: <! 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-ækvivalent = "Content-Type" content = "text / html; charset = utf-8" /> <title > Data Entry / title> </ head> <body> <form method = "post" action = "update.php"> <input type = "hidden" name = "afsluttet" value = "1" /> <p> Kundenummer: <input type = "text" name = "custnum" size = "10" /> </ p> <p> Kunde Navn: <input type = "text" name = "custname" size = "30" / > </ p> <p> <input type = "submit" name = "submit" value = "send" /> </ p> </ formular> </ body> </ html>

• Afslut editor og gem filen. Start redaktøren igen og skabe den "update.php" fil. Skriv f.eks: nano update.php

• Kontroller skjult felt formular for at sikre, at den "update.php" filen blev kaldt fra "post" operation. ? Skriv f.eks: <php $ afsluttet = $ _POST ['afsluttet']; if (! udfyldt $ = "1") die ("<p> Form ikke afsluttet </ p>");

• Træk kundenummer og kundenavn fra de udstationerede resultater. Kontroller, at hver værdi indeholder data. Skriv f.eks: $ nummer = (isset ($ _ POST ['custno']) $ _POST ['custno']:?? ""; $ Name = (isset ($ _ POST ['custname'] $ _POST ['custname ']: ""; if ($ antal == "" || $ navn == "") die ("<p> Form ikke udfyldt korrekt </ p>"!)

• Opret forbindelse til MySQL-serveren, og vælg den ønskede database. Skriv f.eks: $ DBC = mysql_connect ("localhost", "brugernavn", "password") or die ("<p> Kunne ikke forbinde til server fejl er!" Mysql_error ().); $ DB = mysql_select_db ("kunder");

• Opret og udføre en forespørgsel i databasen, der søger efter det kundenummer du skal tilføje. Sørg for at du ordentligt undslippe bruger input strings med "mysql_real_escape_string." Tjek returværdien og udgang, hvis der allerede eksisterer kundenummer. Skriv f.eks: $ query = "SELECT custno FROM kunder WHERE custom =" "mysql_real_escape_string ($ tal).. <; $ Result = mysql_query ($ query); hvis ($ resultat && mysql_num_rows (resultat $)> 0) die ("<p> Kunden allerede findes </ p>");

• Opret og udføre en forespørgsel for at indsætte den nye kunde i databasen. Sørg for at du ordentligt undslippe bruger input strings med "mysql_real_escape_string." Skriv f.eks: $ query = "INSERT INTO kunder (custno, custname) VALUES («, »mysql_real_escape_string ($ navn). '." "" Mysql_real_escape_string ($ tal). ".') $ Result = mysql_query ($ query); if (! $ resultat) die ("<p> Fejl indsætte kundepost </ p>"); echo "<p> Kunde tilføjet </ p>"; ?>