php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.10.2009, 13:42  
Erfahrener Benutzer
 
Benutzerbild von pfump
 
Registriert seit: 29.03.2008
Beiträge: 576
pfump kann nur auf Besserung hoffen
Standard Daten aus DB1 in DB2 übertragen über die Konsole???

Hallo Leute,

jetzt ist es endlich soweit. Ich hab ein großes Problem.
Und zwar muß ich Daten aus einer alten Datenbank in eine neue schieben.
Das ganze soll über die Kommandozeile erfolgen.
Wie funktioniert das?

Das nächste ist, das in der neuen DB Tabellen mit hinzugekommenen, aber auch weggelassenen Feldern sind.
Ich hab zur Zeit überhaupt keinen Lösungsansatz wie das gehen soll.

Mfg
pfump ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.10.2009, 13:50  
Erfahrener Benutzer
 
Registriert seit: 13.05.2009
Beiträge: 1.166
PHP-Kenntnisse:
Fortgeschritten
dennis81 befindet sich auf einem aufstrebenden Ast
Standard

Mit Hilfe der Befehle mysql und mysql_dump
How to Backup and Restore (Export and Import) MySQL Databases Tutorial » My Digital Life
dennis81 ist offline  
Alt 06.10.2009, 14:31  
Erfahrener Benutzer
 
Benutzerbild von pfump
 
Registriert seit: 29.03.2008
Beiträge: 576
pfump kann nur auf Besserung hoffen
Standard

Danke erst mal für die Antwort.
Wie führe ich diese Befehle mit php aus?

Und das zweite, wie kann ich die eingelesenen Tabellen verändern.
Ich muß ja neue Felder anlegen und alte löschen...
pfump ist offline  
Alt 06.10.2009, 14:36  
Erfahrener Benutzer
 
Registriert seit: 13.05.2009
Beiträge: 1.166
PHP-Kenntnisse:
Fortgeschritten
dennis81 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von pfump Beitrag anzeigen
Danke erst mal für die Antwort.
Wie führe ich diese Befehle mit php aus?
Gar nicht. Du hast doch nach einer Konsolenlösung gefragt!

Du kannst natürlich auch exec nehmen.
dennis81 ist offline  
Alt 06.10.2009, 14:57  
Erfahrener Benutzer
 
Benutzerbild von pfump
 
Registriert seit: 29.03.2008
Beiträge: 576
pfump kann nur auf Besserung hoffen
Standard

php kann man auch über die Konsole ausführen

Code:
php [options] [-f] <file> [--] [args...]
sprich die alte Db Tabelle für Tabelle auslesen -> Felder verändern -> Tabelle für Tabelle in neue einfügen.
Und da liegt mein Problem. Ich hab keine Ahnung wie ich das machen soll...
pfump ist offline  
Alt 06.10.2009, 15:06  
Erfahrener Benutzer
 
Registriert seit: 13.05.2009
Beiträge: 1.166
PHP-Kenntnisse:
Fortgeschritten
dennis81 befindet sich auf einem aufstrebenden Ast
Standard

Dann mach den dump mit mysql_dump. Das Ergebnis ist eine .sql Datei. Lege die neue DB an und füge die DB ein. Meinetwegen benennst du die alten Tabellen mit old_tabellenname. Mach dir dann die Struktur wie du sie haben möchtest.
Dann kannst du mit INSERT INTO SELECT die neuen Daten einfügen. Für die neuen Felder musst du natürlich default-Werte angeben. Entweder beim create oder beim select. Anschließend die alten Tabellen löschen.
dennis81 ist offline  
Alt 06.10.2009, 15:51  
Erfahrener Benutzer
 
Benutzerbild von pfump
 
Registriert seit: 29.03.2008
Beiträge: 576
pfump kann nur auf Besserung hoffen
Standard

Mal sehn ob ich das richtig verstanden habe.

Ich benutze
Code:
mysqldump -u username -ppassword –no-create-info database_name > dump.sql
um die Daten auszulesen. Dann importiere ich das dump-File in die neue DB und nenne die Tabellen old_Tabellenname (wie mach ich denn das?)
Danach erstelle ich alle Tabellen mit neuer Strucktur und füge die Daten
aus den old_tabellen in die neuen Tabellen ein(und wie mach ich das?)
Zum Schluß lösche ich noch die old_Tabellen und fertig.
pfump ist offline  
Alt 06.10.2009, 16:21  
Erfahrener Benutzer
 
Registriert seit: 13.05.2009
Beiträge: 1.166
PHP-Kenntnisse:
Fortgeschritten
dennis81 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von pfump Beitrag anzeigen
Mal sehn ob ich das richtig verstanden habe.

Ich benutze
Code:
mysqldump -u username -ppassword –no-create-info database_name > dump.sql
um die Daten auszulesen. Dann importiere ich das dump-File in die neue DB und nenne die Tabellen old_Tabellenname (wie mach ich denn das?)
Mit einem Texteditor! .sql öffnen und bearbeiten

Zitat:
Zitat von pfump Beitrag anzeigen
Danach erstelle ich alle Tabellen mit neuer Strucktur und füge die Daten
aus den old_tabellen in die neuen Tabellen ein(und wie mach ich das?)
Link angesehen? Da steht gleich zu Beginn ein Beispiel. Mal etwas ausführlicher:
Code:
INSERT INTO neueTabelle (spalte1, ..., spalte-n)
    SELECT spalte1, spalte2, 'neuer Default Wert', ..., spalte-n from alteTabelle;
(so ungefähr, habe es jetzt nicht wirklich testen können)
Zitat:
Zitat von pfump Beitrag anzeigen
Zum Schluß lösche ich noch die old_Tabellen und fertig.
Ja, so in etwa.
dennis81 ist offline  
Alt 06.10.2009, 18:16  
Erfahrener Benutzer
 
Benutzerbild von pfump
 
Registriert seit: 29.03.2008
Beiträge: 576
pfump kann nur auf Besserung hoffen
Standard

Das mit dem Texteditor ist ne gute Idee, nur soll das Script halt
voll automatisch arbeiten.
Es muß also die Tabellen automatisch umbenennen.
Kann ich eigentlich die Daten nicht gleich aus der alten DN auslesen (mit SELECT),
die neuen Werte dazu schreiben und dann mit INSERT SELECT FROM
die geänderten Daten gleich in die neue DB reinladen?
pfump ist offline  
Alt 06.10.2009, 18:41  
Erfahrener Benutzer
 
Registriert seit: 13.05.2009
Beiträge: 1.166
PHP-Kenntnisse:
Fortgeschritten
dennis81 befindet sich auf einem aufstrebenden Ast
Standard

Wie oft willst du das denn machen? Natürlich kannst du auch aus der alten DB die Daten raus holen. Dann geht es aber nicht mehr mit INSERT INTO FROM, sondern über den "Umweg" PHP. Wenn das eine einmalige Aktion ist, würde ich mir überlegen, ob sich der Aufwand lohnt dafür ein eigenes Skript zu schreiben.
dennis81 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Submit Formular über Frame - Daten kommen nicht an timok PHP Tipps 2009 3 05.10.2009 16:15
PHP zu PHP daten übertragen KrushVarrok PHP Tipps 2009 14 22.09.2009 15:59
MySQL Konsole und Umlaute unter Windows [LÖSUNG] f4ckm5 Datenbanken 8 30.03.2009 22:10
Anmelde Daten auf andere Website übertragen? Fruchtzwerk PHP Tipps 2009 2 16.03.2009 12:40
Registrierte User sollen ihre Daten ändern können 54ch4 PHP Tipps 2009 17 14.03.2009 14:29
Daten von Website zu Website übertragen beta02 PHP Tipps 2009 17 13.01.2009 22:19
Variablen aus Formular über HTTPRequest übertragen -jan- JavaScript, Ajax und mehr 6 27.05.2008 14:08
Daten über checkbox ändern PHP Tipps 2006 8 10.06.2006 13:39
$_POST Daten löschen ohne über einen Link zu gehen Blank PHP Tipps 2006 10 29.05.2006 17:00
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
Probleme beim Übertragen von Daten in die DB PHP Tipps 2005-2 3 25.08.2005 19:03
Daten mit file() auf anderen Server übertragen PHP Tipps 2005-2 1 17.08.2005 21:17
Daten übertragen von datenbank zu datenbank PHP Tipps 2005-2 6 20.06.2005 13:19
Daten aus 2 Datenbanken über eine Verbindung Datenbanken 11 28.11.2004 17:36
Daten aus einem Formular übertragen dj-digger PHP Tipps 2004 5 20.08.2004 22:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
db1 und db2, insert into db1 to db2, db1 db2, db2 console, textfiles via console übertragen, insert into db1 db2, db2 für einsteiger, u db1 = db2, db2 alle tabellen übertragen, insert into db2 from db1, db 1 zu db2, db2 php umlaut, sql konsole db2, mysql datenbanken per konsole übertragen, mysql db1 zu db2 transferieren, textdateien via konsole übertragen, german umlaute db2 insert, dateien über konsole auf server übertragen, dateien per ftp übertragen, tabellen übertragen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:58 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum