När man utvecklar PHP-program , kan du behöva flytta data från en MySQL tabell till en annan , som när du vill installera en uppgradering som kräver ytterligare datafält . För att göra detta , kan du använda de inbyggda metoder i PHP mysqli förlängningen att söka data från källan tabellen och sätt in den i mål tabellen . Skapa en enda förberett uttalande att infoga data i mottagartabellen , binda resultatet av frågan som extraherar data utgör källan tabellen till förberett uttalande och verkställa förberett uttalande för varje post i tabellen med källor . Instruktioner
1
Använd en HTML- redigerare eller Anteckningar för att skapa en ny PHP- programfil . Börja programmet genom att öppna en anslutning till databasservern och välja den databas som innehåller de tabeller som du vill flytta data . Kontrollera felet efter anslutning för att säkerställa att det var lyckat . Typ :
< php
$ db = new mysqli ( ' localhost ' , ' username ' , ' password' , ' database' ) ;
om ( mysqli_connect_errno ? ( ) ) die ( mysqli_connect_error ( ) ) ;
2
initiera en array för att hålla data från källan tabellen som du vill flytta till destinationen tabellen . Skapa en frågesträng som du använder för att extrahera data från källan tabellen . Typ :
$ row = array ( ) ;
$ Tabell1 = " SELECT id , namn , e-post , telefon från användarna ORDER PÅ id " , Addera 3
Skapa ett nytt förberett uttalande med MySQL kommando för att infoga data i destinationen tabellen . Använd frågetecken att ange de värden som ska infogas och binder medlemmarna i gruppen du skapade med hjälp av " bind_param " metoden . Typ :
$ stmt = $ db - > förbereda ( " INSERT INTO newusers ( id , namn , e-post , telefon ) VALUES ( , , , ) ? ? ? ? " ,
$ stmt - > bind_param ( ' ISSS ' , $ row [ ' id ' ] , $ rad [ ' name' ] , $ rad [ ' email ' ] , $ rad [ ' telefon ' ] ) ;
4 .
Issue frågan att välja data från källan tabellen lagra resultatet i den associativa arrayen du deklarerat tidigare och skapa en loop som hämtar varje post fram till slutet av tabellen Type : .
$ result = $ db - > query ( $ Tabell1 ) ,
while ( $ row = $ result - > fetch_assoc ( ) ) {
5
Utför förberett uttalande att infoga data . . . från källan tabellen till destinationen tabellen Kontrollera att insatsen var framgångsrik genom att utvärdera " affected_rows " egendom förberett uttalande Stäng förberett uttalande innan ett nytt Type :
$ stmt - > execute ( ) ;
if ( $ stmt - > affected_rows = 1 ! ) {
echo " Inga data infogas för användare med id = $ row [ ' id ' ] " ;
}
$ stmt - > close ( ) ;
}
6
Stäng databasen när proceduren är klar spara PHP-program . . Kör den för att se den korrekt flyttar data från en tabell till en annan typ : . ?
$ db - > close ( ) ;
>