Joah.: MySQL Datenbank Export über Script

Hi,

ich habe folgende Aufgabe. Ich habe ein Projekt, das mit PHP und MySQL realisiert wurde, den Datenbankbereich kann ich mit PHPMyAdmin exportieren. Nun soll aber die Export Funktion der _KOMPLETTEN_ Datenbank über ein PHP Script realisiert werden.

Hat jemand eine Idee, wie das möglich ist? Gibt es hierfür bereits Funktionen oder kann ich entsprechende aus dem PHPMyAdmin herausziehen?

Danke für eure Hilfe.

Joah.

  1. Hi,

    Hat jemand eine Idee, wie das möglich ist? Gibt es hierfür bereits Funktionen oder kann ich entsprechende aus dem PHPMyAdmin herausziehen?

    Also, ich hab gegoogelt und folgendes gefunden. Habs selbst nicht getestet, aber vielleicht hift dir das weiter?

    <?php

    exec("/usr/bin/mysqldump -u <user> -p <passwort> Quelle > Ziel", $fp);

    if ($fp==0) echo "Daten exportiert"; else echo "Es ist ein Fehler aufgetreten";

    ?>

    1. Hi qua,

      exec("/usr/bin/mysqldump -u <user> -p <passwort> Quelle > Ziel", $fp);

      Das dürfte wohl bei etlichen Hosten nicht Funktionieren, da die entsprechenden Berechtigungen fehlen. Möglich ist es so natürlich.

      Ich habe aber mal ein paar Funktionen zusammengeschrieben, mit denen ein Export möglich ist. Sollte eigentlich auch soweit funktionieren - zu finden im SelfForums-Bereich meiner Homepage -> db_export.lib.php

      MfG, Dennis.

      1. Hallo Dennis,

        Ich habe aber mal ein paar Funktionen zusammengeschrieben, mit denen ein Export möglich ist. Sollte eigentlich auch soweit funktionieren - zu finden im SelfForums-Bereich meiner Homepage -> db_export.lib.php

        in der Funktion export_table_structure() kannst du dir den Syntax für CREATE TABLE mit [link:http://dev.mysql.com/doc/mysql/de/show-create-table.html@title=SHOW CREATE TABLE] auch einfacher erzeugen :-)

        Grüße aus Nürnberg
        Tobias

        1. Hi Tobias,

          in der Funktion export_table_structure() kannst du dir den Syntax für CREATE TABLE mit [link:http://dev.mysql.com/doc/mysql/de/show-create-table.html@title=SHOW CREATE TABLE] auch einfacher erzeugen :-)

          Thx, werde ich beherzigen. Wollte das ganze eh irgendwann mal noch versuchen als PHP 5 Klasse zu schreiben ;-)

          Übrigens ist die Seite selber trotz .php i.M. noch statisch, da ich noch keine wirklich gute Möglichkeit gefunden habe, einen Text, der " und ' enthält in eine Variable zu kriegen - nutze ich die Herodox Syntax, werden mir die Variablen ersetzt. :-(

          Eine eingene z.B. Txt Datei möchte ich auch wiederrum ungern anlegen. Irgendwelche Ideen, Anregungen, Vorschläge?

          MfG, Dennis.

          --
          Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
          Schon gewusst, dass Bugs und Feature Vorschläge für das CForum ins Entwicklerforum oder in den BugTracker gehören und nicht hier her?
          1. echo $begrueszung;

            Übrigens ist die Seite selber trotz .php i.M. noch statisch, da ich noch keine wirklich gute Möglichkeit gefunden habe, einen Text, der " und ' enthält in eine Variable zu kriegen - nutze ich die Herodox Syntax, werden mir die Variablen ersetzt. :-(

            Diesen Satz finde ich ein wenig verwirrend.
            Meinst du dass du sowas suchst?

              
            $variable = 'Das ist ein "Text" der ein paar \'Zeichen\' und einen den Namen einer $variablen enthält.';  
            echo "Soeben wurden im 'Quelltext' der Variablen \$variable folgender Wert zugewiesen: $variable";  
              
            $array = array('key' => 'value');  
            echo "key = {$array['key']}";  
              
            
            

            echo "$verabschiedung $name";

            1. Hi dedlfix,

              Übrigens ist die Seite selber trotz .php i.M. noch statisch, da ich noch keine wirklich gute Möglichkeit gefunden habe, einen Text, der " und ' enthält in eine Variable zu kriegen - nutze ich die Herodox Syntax, werden mir die Variablen ersetzt. :-(

              Diesen Satz finde ich ein wenig verwirrend.
              Meinst du dass du sowas suchst?

              $variable = 'Das ist ein "Text" der ein paar 'Zeichen' und einen den Namen einer $variablen enthält.';

              echo "Soeben wurden im 'Quelltext' der Variablen $variable folgender Wert zugewiesen: $variable";

                
              Viel Spaß beim Escapen von 100 und mehr Zeilen Quellcode ;-)  
                
                
              MfG, Dennis.
              
              -- 
              Mein SelfCode: [ie:{ fl:( br:> va:) ls:\[ fo:) rl:( n4:# ss:) de:\] js:| ch:{ sh:( mo:} zu:|](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%3E+va%3A%29+ls%3A%5B+fo%3A%29+rl%3A%28+n4%3A%23+ss%3A%29+de%3A%5D+js%3A%7C+ch%3A%7B+sh%3A%28+mo%3A%7D+zu%3A%7C)  
                
              Den Selfcode kann man sich übrigends hier entschlüsseln lassen:  
              <http://www.peter.in-berlin.de/projekte/selfcode/>
              
              1. echo $begrueszung;

                Viel Spaß beim Escapen von 100 und mehr Zeilen Quellcode ;-)

                Führst du Selbstgespräche? :-) Ich will das doch nicht darstellen...

                Sag doch mal, was konkret du vorhast!

                echo htmlspecialchars(file_get_contents('quellcodedatei.ext'));

                highlight_file('quellcodedatei.ext');

                echo "$verabschiedung $name";

                1. Hi dedlfix,

                  Viel Spaß beim Escapen von 100 und mehr Zeilen Quellcode ;-)

                  Führst du Selbstgespräche? :-) Ich will das doch nicht darstellen...

                  hehe ;-)

                  Sag doch mal, was konkret du vorhast!

                  echo htmlspecialchars(file_get_contents('quellcodedatei.ext'));

                  highlight_file('quellcodedatei.ext');

                  Ich wollte einen längeren PHP Code gehighlighted anzeigen, ohne dass dafür eine zweite Datei auf dem Server existieren muss und ohne dass ich wie wild escapen muss ;-)

                  Vielleicht müsste ich den File so schreiben, dass es sich selber highlighted, aber nur von Zeile X bis Zeile Y.

                  MfG, Dennis.

                  --
                  Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
                  Antworten per E-Mail gibts hier nicht!
                  1. echo $begrueszung;

                    Ich wollte einen längeren PHP Code gehighlighted anzeigen, ohne dass dafür eine zweite Datei auf dem Server existieren muss und ohne dass ich wie wild escapen muss ;-)

                    Das auf dem Server zu machen muss auch nicht sein. Wie wärs, wenn du in deiner Testumgebung die Datei einliest und mittels einfachem Suchen und Ersetzen eine escapte Ausgabe erzeugst, die du dann in die ZielDatei Copy'n'Pastest?

                    Vielleicht müsste ich den File so schreiben, dass es sich selber highlighted, aber nur von Zeile X bis Zeile Y.

                    Das geht auch, z.B. mit einem entsprechend formatierten Kommentar davor und danach als Erkennungszeichen...

                    echo "$verabschiedung $name";

                    1. Hi dedlfix,

                      Ich wollte einen längeren PHP Code gehighlighted anzeigen, ohne dass dafür eine zweite Datei auf dem Server existieren muss und ohne dass ich wie wild escapen muss ;-)

                      Das auf dem Server zu machen muss auch nicht sein. Wie wärs, wenn du in deiner Testumgebung die Datei einliest und mittels einfachem Suchen und Ersetzen eine escapte Ausgabe erzeugst, die du dann in die ZielDatei Copy'n'Pastest?

                      In der Datei kann ich das nicht per Find&Replace machen, da dann ja auch "richtige" Anführungszeichen die zum PHP Code gehören würden escaped würden. Ich müsste also das Script erst in eine temporäre Datei packen, dort alles escapen und zurück kopieren. Wenn man dann ein paar Änderungen im Code vornehmen will, dann wirds etwas mühsam.

                      Vielleicht müsste ich den File so schreiben, dass es sich selber highlighted, aber nur von Zeile X bis Zeile Y.

                      Das geht auch, z.B. mit einem entsprechend formatierten Kommentar davor und danach als Erkennungszeichen...

                      Ich denke, dass ist i.d.T. die beste Methode.

                      MfG, Dennis.

                      --
                      Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
                      Das Leben ist kein Warenhaus - es nimmt nichts zurück. (Anette Louisan)