Yawa Skrevet 9. august 2012 Del Skrevet 9. august 2012 På et nettsted jeg jobber på nå, så ser hovedtilkoblingen ser slik ut: if(@mysql_connect($mysql_host,$mysql_bruker,$mysql_pass,true)) { if(!mysql_select_db($mysql_db)){ $error = "Error: Unable to find the database!"; } } else { $error = "Error: Unable to connect to the MySQL Server!"; } Denne er plassert helt i toppen og sørger for at alle spørringer til databasen funker. En gammel database inneholder produkter samt endel produkt-info fordelt over flere tabeller. Denne dataen trenger jeg å kopiere over til den nye databasen. Men for å gjøre det må jeg naturligvis sette opp en tilkobling til den gamle databasen: $db_con_osc = mysql_connect($osc_mysql_host,$osc_mysql_bruker,$osc_mysql_pass); if($db_con_osc){ $db_sel_osc = mysql_select_db($osc_mysql_db); if(!$db_sel_osc){ $error = "Error: Unable to find the database!"; } } else{ $error = "Error: Unable to connect to the MySQL Server!"; } Dette fungerer når jeg nå definerer tilkoblingen slik i spørringen: $qry_products = mysql_query($sql_products, $db_con_osc); Men nå mister jeg all kommunikasjon med den nye databasen, databasen som selve nettstedet benytter seg av ellers, på akkurat denne siden. Måten jeg ser for meg å kopiere produktene fra den gamle til den nye databasen er ved å bruke en foreach()- eller while()-loop på hvert resultat, så begge databaser må være tilgjenglige samtidig antar jeg... Noen som kan komme med noe forlag til hvordan jeg kan få til dette? Lenke til kommentar
MikkelRev Skrevet 9. august 2012 Del Skrevet 9. august 2012 Hvis alt du prøver å få til er å kopiere data, kan du bruke INSERT SELECT. Eller eksportere tabellen fra den gamle databasen og importere inntil den nye. Lenke til kommentar
Yawa Skrevet 9. august 2012 Forfatter Del Skrevet 9. august 2012 nja, det er til en viss grad sant. Men greia her er at i den gamle databasen, så ligger hvert produkt fordelt ut over 4 tabeller. I den nye databasen er produktene fordelt over 2 tabeller med samme data. Ikke all data fra den gamle tabellen skal med over til den nye heller. Om jeg tar en insert select får jeg kun valgt hvilke data jeg ønsker, men får ikke satt de inn igjen til den nye siden tilkoblingen er brutt... Lenke til kommentar
MikkelRev Skrevet 9. august 2012 Del Skrevet 9. august 2012 Du kan gå inn i din favoritt databaseklient og kjøre INSERT SELECT inn til to nye midlertidige tabeller, som da vil inneholde akkurat den dataen du trenger. Disse tabellene kan du da eksportere ut fra den gamle, og etterpå importere dataen inn i den nye. Lenke til kommentar
TheClown Skrevet 9. august 2012 Del Skrevet 9. august 2012 $ss = @mysql_connect("xxx","xxx","xxx"); if (!$ss) echo("<b>Noe gikk galt. Kontakt webmaster!</b>"); mysql_select_db("xxx", $ss) or die("<b>Noe gikk galt. Kontakt webmaster!</b>"); Dette er tatt fra en template i Wordpress. Databasetilkoblingen er fortsatt oppe mot WP-databasen. så jeg tror denne fremgangsmåten skal fungere. Trikset er å lagre tilkoblingen i en variabel, og å huske å stenge den når du er ferdig. Lenke til kommentar
Yawa Skrevet 10. august 2012 Forfatter Del Skrevet 10. august 2012 Du kan gå inn i din favoritt databaseklient og kjøre INSERT SELECT inn til to nye midlertidige tabeller, som da vil inneholde akkurat den dataen du trenger. Disse tabellene kan du da eksportere ut fra den gamle, og etterpå importere dataen inn i den nye. Takk for bra tips. Helt logisk fremgangsmåte, men jeg kom ikke på det i det hele tatt... Har forsøkt tilsvarende fremgangsmåte TheClown, men har ikke fått det til å fungere... Jeg stenger mest sannsynlig tilkoblingen for sent slik at jeg ikke får tilgang til databasen dataen skal settes inn i. Lenke til kommentar
MikkelRev Skrevet 10. august 2012 Del Skrevet 10. august 2012 For å pirke på meg selv, burde jeg heller sagt CREATE TABLE SELECT istedetfor INSERT SELECT Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå