Hvordan unngå doble oppføringer med PHP i MySQL

Hvordan unngå doble oppføringer med PHP i MySQL


Mange PHP-applikasjoner vil tillate brukere å legge inn data som deretter settes inn i en MySQL database. Det er viktig for disse programmene for å sjekke hvorvidt en post allerede finnes i MySQL database før du legger den. En reaktiv måte å gjøre dette på er å sette en entydig indeks på nøkkelen feltet i MySQL database, legge til posten og sjekke for å se om det oppstod en feil. Men er det mer grasiøs, proaktiv tilnærming for å se etter en duplikat posten før du legger data til databasen.

Bruksanvisning

1 Start en redaktør og opprette en ny PHP-script fil. For eksempel inn:

nano adddata.php

2 Opprett HMTL skjemaet til å akseptere brukerundersøkelser. Sett metoden for å "post" og handlingen til «update.php" for å legge de innsendte resultatene til en "update.php" fil du vil lage neste. For eksempel inn:

<! 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 / title>

</ Head>

<Body>

<Form method = "post" action = "update.php">

<Input type = "hidden" name = "ferdig" value = "1" />

<P> Kundenummer: <input type = "text" name = "custnum" size = "10" /> </ p>

<P> Kundenavn: <input type = "text" name = "custname" size = "30" /> </ p>

<P> <input type = "submit" name = "submit" value = "submit" /> </ p>

</ Form>

</ Body>

</ Html>

3 Avslutt redaktør og lagre filen. Start redaktør igjen og skape "update.php" fil. For eksempel inn:

nano update.php

4 Sjekk skjult felt skjemaet for å sikre at "update.php" filen ble kalt fra "post" operasjon. For eksempel inn:

<? Php

$ Completed = $ _POST [ 'fullført'];

if (! $ fullført = "1") die ( "<p> Form ikke fullført </ p>");

5 Pakk ut kundenummer og kundens navn fra de bokførte resultater. Kontroller at hver verdi inneholder data. For eksempel inn:

$ Antall = (isset ($ _ POST [ 'custno']) $ _POST [ 'custno']: "";

? $ Name = (isset ($ _ POST [ 'custname'] $ _POST [ 'custname']: "";

if ($ antall == "" || $ navn == "") die ( "<p> Form ikke fylt ut riktig </ p>");

6 Koble til MySQL server og velg ønsket database. For eksempel inn:

$ DBC = mysql_connect ( "localhost", "brukernavn", "passord") or die ( "<p> Kan ikke koble til serveren Feil er!" Mysql_error ().);

$ Db = mysql_select_db ( "kunder");

7 Lag og utføre en spørring på databasen som søker etter kundenummeret du skal legge til. Sørg for at du skal slippe unna brukerundersøkelser strenger med "mysql_real_escape_string." Sjekk returverdien og utgang dersom kunden finnes allerede. For eksempel inn:

$ Query = "SELECT custno fra kunder hvor custom =" 'mysql_real_escape_string ($ tall).. "';

$ Resultat = mysql_query ($ query);

if ($ resultat && mysql_num_rows ($ resultat)> 0) die ( "<p> Kunde finnes allerede </ p>");

8 Lag og utføre en spørring for å sette inn den nye kunden inn i databasen. Sørg for at du skal slippe unna brukerundersøkelser strenger med "mysql_real_escape_string." For eksempel inn:

$ Query = "INSERT INTO kunder (custno, custname) verdier (" 'mysql_real_escape_string ($ tall).. ","' Mysql_real_escape_string ($ name).. ") ';

$ Resultat = mysql_query ($ query);

if (! $ resultat) die ( "<p> Feil ved innsetting av kundepost </ p>");

echo "<p> Kunde lagt </ p>";

?>