Hvordan velge den siste Auto Økning MySQL i PHP

MySQL gir en datatype som automatisk trinn for hver gang en plate er lagt til et bord. Denne auto-tilvekst element fungerer som primærnøkkel for en tabell. Du kan velge den siste auto-tilvekst posten ved hjelp av PHP ved å kjøre en MySQL spørring for å velge LAST_INSERT_ID (), og deretter kjøre en annen spørring for å velge posten med at autoøkningsverdi. Hvis du bruker PHP til å sette inn poster i en tabell, kan du få den autoøkningsverdi for den siste posten satt inn ved å ringe mysql_insert_id ().

Bruksanvisning

Bruk MySQL LAST_INSERT_ID ()

1 Opprett en ny PHP-fil ved hjelp av en redaktør eller Notisblokk. Koble til databaseserveren og åpne databasen. For eksempel inn:

<? Php

$ DBC = mysql_connect ( "localhost", "brukernavn", "passord") or die (mysql_error ());

$ Db = mysql_select_db ( "database") or die (mysql_error ());

2 Få verdien av LAST_INSERT_ID () ved å velge den fra bordet som inneholder auto-tilvekst feltet. For eksempel inn:

$ query = "SELECT LAST_INSERT_ID () Fra states AS id ";

$ Resultat = mysql_query ($ query) or die (mysql_error ());

$ P = mysql_fetch_assoc ($ resultat);

$ Siste = $ rad [ "id"];

3 Kjør en spørring for å velge data for posten med den siste auto-økningsverdi og skrive ut dataene. For eksempel inn:

$ query = sprintf ( 'SELECT fra states WHERE id = "% s"', $ sist);

$ Resultat = mysql_query ($ query) or die (mysql_error ());

$ P = mysql_fetch_assoc ($ resultat);

printf ( "Data for posten med den siste auto-økningsverdi på% d: \ r \ n", $ sist);

print_r ($ rad);

Bruk PHP last_auto_increment

4 Lag en klasse for å holde en datastruktur som speiler databasestrukturen. For eksempel inn:

klasse State {

public $name, $capital, $bird;

offentlig funksjon __construct ($ name, $ kapital, $ fugl) {

$ Dette-> name = $ navn;

$ Dette-> kapital = $ kapital;

$ Dette-> fugl = $ fugl;

}

}

5 Fylle ut en matrise med data du vil sette inn i databasen. For eksempel inn:

$ Statene = array ();

$ stater [ "NH"] = nye staten ( "New Hampshire", "Concord", "Purple Finch");

$ stater [ "OH"] = nye staten ( "Ohio", "Columbus", "Cardinal");

$ stater [ "IN"] = nye staten ( "Indiana", "Indianapolis", "Cardinal");

6 Iterere gjennom rekke verdier og sette dem inn i databasen tabellen. For eksempel inn:

foreach ($ tilstander som $ tilstand) {

$ query = sprintf ( 'INSERT INTO states ( id , abbrev , name , capital , bird ) VALUES (null, "% s", "% s", "% s", "% s") ", $ uttalelse> Forkortet, $ state-> navn, $ state-> kapital, $ uttalelse> fugl);

$ Resultat = mysql_query ($ query) or die (mysql_error ());

printf ( "Record inn med auto-incremenet verdi% d", mysql_insert_id ());

}

?>

Hint

  • Hvis den siste innsatsen var et fler rad innsats, MySQL returnerer første autoøkningsverdi som brukes for gruppen, slik at innsatsen kan replikeres på en annen server.