Ved udviklingen PHP-applikationer , skal du måske til at flytte data fra én MySQL tabel til en anden , som når du ønsker at installere en opgradering, der kræver yderligere datafelter . For at gøre dette , kan du bruge de indbyggede metoder i PHP MySQLi udvidelse til forespørgselsdata fra kilden bordet og indsætte det i destination tabellen. Oprette et enkelt forberedt erklæring at indsætte data i destination tabellen , binde resultaterne af forespørgslen , der uddrager data danner kilden tabellen til forberedt erklæring og udføre forberedt erklæring for hver post i kilden tabellen. Instruktioner
1
Brug en HTML-editor eller Notesblok til at oprette en ny PHP -program -fil. Begynd programmet ved at åbne en forbindelse til databaseserveren og vælge den database , der indeholder de tabeller, som du ønsker at flytte data. Kontroller fejltilstand efter tilslutning for at sikre det var en succes . Type : Hej
< php
$ db = new MySQLi ( ' localhost ', ' brugernavn ', ' password ', ' database ');
if ( mysqli_connect_errno ? () ) die ( mysqli_connect_error ());
2
Initialiser et array til at holde data fra kilden tabel, du ønsker at flytte til destinationen bordet. Opret en forespørgsel streng, du vil bruge til at udtrække data fra kilden bordet. Type : Hej
$ row = array ();
$ Tabel1 = " SELECT id , navn, email, telefon FROM brugere ORDER ON id "
3
Opret en ny forberedt erklæring med MySQL kommandoen til at indsætte data i destination tabellen. Brug spørgsmålstegn til at angive de værdier , der vil blive indsat og binder medlemmerne af array , du har oprettet ved hjælp af " bind_param "-metoden. Type : Hej
$ stmt = $ db- > forberede ( " INSERT INTO newusers (id , navn , email , telefon) VALUES ( , ,,) ? ? "
$ stmt -> bind_param ( ' ISSS ' $ row [' id '] , $ row [ 'name '] , $ row [' email '] , $ row [' telefon' ])
4 .
Issue forespørgslen til at vælge data fra kilden tabellen Opbevar resultatet i associative array , du erklærede tidligere og skaber en løkke, der henter hver post indtil udgangen af bordet Type: .
$ result = $ db- > query ( $ Tabel1 )
while ( $ row = $ result -> fetch_assoc ( )) {
5
Udfør forberedt erklæring til at indsætte data . . . fra kilden tabellen til destinationen bordet Sørg indsatsen var en succes ved at evaluere " affected_rows " ejendom forberedt erklæring Luk forberedt erklæring , før du begynder en ny type : Hej
$ stmt -> udføre ();
if ($ stmt -> affected_rows = 1 !) {
echo " Ingen data indsat til brugeren med id = $ row [' id '] " < br >
}
$ stmt - > luk ();
}
6
Luk databasen, når proceduren er afsluttet Gem PHP -programmet. . Kør det for at sikre den korrekt flytter data fra én tabel til en anden type : . ?
$ db- > luk ();
>