Hvordan: PHP til å flytte data fra en MySQL tabell til en annen

Ved utvikling av PHP-applikasjoner, kan det hende du må flytte data fra en MySQL tabell til en annen, som når du ønsker å installere en oppgradering som krever flere datafelt. For å gjøre dette, kan du bruke den innebygde metoder i PHP MySQLi utvidelse søke informasjon fra kildetabellen og sett den inn i destinasjonstabellen. Lag et enkelt forberedt uttalelse å sette inn data i destinasjonstabellen, fell resultatene av spørringen som trekker ut data danner kildetabellen til den klargjorte setningen og utføre den klargjorte setningen for hver post i kildetabellen.

Bruksanvisning

1 Bruk en HTML-editor eller Notisblokk til å opprette en ny PHP programfilen. Begynn programmet ved å åpne en tilkobling til databaseserveren og velge database som inneholder tabeller som du ønsker å flytte data. Sjekk feil tilstand etter å koble å sikre at det var vellykket. Type:

<? Php

$ Db = new mysqli ( 'localhost', 'brukernavn', 'passord', 'database');

if (mysqli_connect_errno ()) die (mysqli_connect_error ());

2 Initial en matrise for å holde dataene fra kildetabellen som du ønsker å flytte til målet tabellen. Lag en spørring streng som du vil bruke for å trekke ut data fra kildetabellen. Type:

$ P = array ();

$ Tabell1 = "SELECT id, navn, e-post, telefon fra brukerne ORDEN PÅ id";

3 Opprett en ny forberedt uttalelse med MySQL-kommandoen for å sette inn data i destinasjonstabellen. Bruk spørsmålstegn for å angi verdiene som vil bli satt inn og binde medlemmene i matrisen du opprettet ved hjelp av "bind_param" metoden. Type:

$ Stmt = $ DB> forberede ( "INSERT INTO newusers (id, navn, e-post, telefon) VERDIER (,,,)???";

$ Stmt-> bind_param ( 'ISSS', $ rad [ 'id'], $ rad [ 'name'], $ rad [ 'email'], $ rad [ 'telefon']);

4 Utstede spørring for å velge data fra kildetabellen. Lagre resultatene i det assosiative array man erklært tidligere, og skape en løkke som henter hver post til slutten av tabellen. Type:

$ Resultat = $ DB> spørring ($ Tabell1);

while ($ rad = $ resultat-> fetch_assoc ()) {

5 Kjør forberedt uttalelse å sette inn dataene fra kildetabellen til målet tabellen. Pass på at innsatsen var vellykket med evalueringen av "affected_rows" tilhører den klargjorte setningen. Lukk forberedt uttalelse før du starter en ny. Type:

$stmt->execute();

if ($ stmt-> affected_rows! = 1) {

echo "Ingen data satt inn for bruker med id = $ rad [ 'id']";

}

$ Stmt-> close ();

}

6 Lukke databasen når prosedyren er fullført. Lagre PHP-programmet. Kjør det å sikre at det beveger seg korrekt data fra en tabell til en annen. Type:

$ DB> close ();

?>