SQL-Datei per PHP Skript erzeugen und importieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SQL-Datei per PHP Skript erzeugen und importieren

    Hi Leute,

    Ich brauche für mein Projekt folgendes: Es werden in eine Artikeldatenbank alle Artikel eines Geschäfts eingetragen. Nun soll von dieser Datenbank eine Datei, die alle MySQL Daten (also im Prinzip nur die Einträge) enhält, per PHP Skript angefertigt werden. In PHPMyAdmin kann man das ja über "Exportieren" in eine SQL-Datei exportieren. Ist das auch über ein PHP-Skript möglich? Später soll diese Datei in eine andere Datenbank über ein PHP-Skript wieder eingetragen werden. Diese Datei muss nicht besonders geschützt oder verschlüsselt sein. Es geht wirklich nur rein um die Artikeldaten!

    habe schon das Forum und PHP.NET lang und breit durchsucht, aber leider nichts außer diesem Link http://www.zend.com/codex.php?id=899&single=1 gefunden! Doch der speichert die Daten als Excel File ab. Ich brauche SQL!

    Ist so etwas (halbwegs leicht) möglich oder braucht man dazu spezielle Software? Wäre cool, wenn mir da jemand einen Ansatz geben könnte!

    Vielen Dank an alle Helfer!

    Greetz Lukas

  • #2
    du meinst vermutlich nicht die Dateien, sondern die sog. Dumps!

    danach kannst du dann auch suchen.

    Kommentar


    • #3
      @TobiaZ

      Dass ein Backup der Datenbank "Dump" heißt, wusste ich auch schon und hat mich bei der Suche nicht wirklich weiter gebracht...leider!

      @all

      hätte vielleicht jemand einen Codeschnipsel oder einen Link zu einem Threat, der dieses Thema ungefähr behandelt? Habe nur diesen Threat gefunden: http://www.php-resource.de/forum/sho...ump+AND+skript . Aber da ist auch nicht wirklich Brauchbares für mich dabei!

      Greetz Lukas

      Kommentar


      • #4
        phpmyadmin basiertt doch auf php

        schau dir die datei an, die den dump erstellt, da steht der code drin
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          anstatt nach skript (dazu noch mit K) zu suchen, wäre vielleich ein Wort wie erstellen (was du ja willst) wohl einiges besser. das forum hat zum glück nicht nur fertige lösungen (scripte)

          Kommentar


          • #6
            @TobiaZ

            Es tut mir ja soooo leid, dass ich gegen das Gebot, Script mit "k" zu schreiben, verstoßen habe. Wirklich !

            Und mit erstellen habe ich auch nichts gefunden. Vielleicht wäre es mal nicht so schlecht, du würdest den Leuten einfach helfen, in dem du mal Suchbegriffe vorschlägst, die sie verwenden sollen. Es ist nicht jeder Forum-Nutzer so versiert, wie du!

            @mrhappiness

            Sorry, der Code ist mir zu hoch

            @all

            Ich habe mit einem Freund nun das Skript für den Dump-Export und den Re-Import zusammen gecodet. Ich poste das mal hier, für den Fall, dass es jemand brauchen kann!

            Dump erstellen:
            In den db_connect_....php stehen nur die Verbindung zur DB und $tablename_articlelist = "DER TABELLEN NAME" drinnen.


            Dieses Script ist erstellt von JOat

            PHP-Code:
            include ("db_connect_articlelist.php");

            header("Content-type: text/plain");
            header("Content-Disposition: attachment; filename=dump_articlelist.sql");

            $link = @MYSQL_CONNECT($host_mysql,$username_mysql,$password_mysql);

            make_dump($tablename_articlelist$link$db_name_mysql);


            function 
            make_dump($tablename_articlelist$link$db_name_mysql) {
                     
            $felder mysql_list_fields($db_name_mysql$tablename_articlelist,$link);
                     
            $menge mysql_num_fields($felder);//Anzahl der Felder von $tabelle

                     
            $datengesamt mysql_query("SELECT * FROM $tablename_articlelist");
                     while ( 
            $datenmysql_fetch_array$datengesamt ) )
                     {
                              
            $string "";
                              for(
            $x=0;$x<$menge;$x++){
                                      
            $name[] = mysql_field_name($felder,$x); //namen der felder
                                      
            $type mysql_field_type($felder,$x); //gibt feldtyp zurück
                                      //auswertung der feldtypen
                                      
            if($type==int)
                                            
            $spacer "";
                                      if(
            $type==blob||$type==string||$type==date)
                                            
            $spacer "'";
                                      if(empty(
            $daten[$name[$x]]))
                                            
            $daten[$name[$x]] = " ";
                                      
            //Zusammenstellung des Strings
                                      
            if($x==$menge-1)
                                      
            $string $string $spacer $daten[$name[$x]] . $spacer "";
                                      if(
            $x!=$menge-1)
                                      
            $string $string $spacer $daten[$name[$x]] . $spacer ",";
                              }
                              
            //Testausgabe des Strings (wird später durch datei/ftp ausgabe ersetzt)
                              
                              
            $string "INSERT INTO " $tablename_articlelist " VALUES (" $string ");";
                              echo 
            $string;
                              echo 
            "\n";
                     }



            Für den Re-Import in die Datei: "import_dump.php"

            PHP-Code:
            <html>

            <
            head>

            <
            meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
            <
            title>Import Dump</title>
            <
            link rel="stylesheet" type="text/css" href="../../buttonstyle_apply_adress.css">
            </
            head>

            <
            body bgcolor="#FBFFFF">

            <
            form enctype="multipart/form-data" method="POST" action="import_dump_do.php">
            <
            input type="hidden" name="max_file_size" value="5000">

               <
            table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1" height="53">
                <
            tr>
                  <
            td width="100%" height="17"><input type="file" name="userfile" size="30"></td>
                </
            tr>
                <
            tr>
                  <
            td width="100%" height="19">&nbsp;</td>
                </
            tr>
                <
            tr>
                  <
            td width="100%" height="17"><input type="submit" value="[importieren]" class="button_apply_adress"></td>
                </
            tr>
              </
            table>
            </
            form>

            </
            body>

            </
            html
            Für die 2. Datei "import_dump_do.php"

            PHP-Code:
            <html>

            <head>

            <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
            <title>Import Dump</title>
            <link rel="stylesheet" type="text/css" href="buttonstyle_apply_adress.css">
            </head>

            <body bgcolor="#FBFFFF">

            <form enctype="multipart/form-data" method="POST" action="import_dump_do.php">
            <font face="Arial">
            <input type="hidden" name="max_file_size" value="5000">

               </font>

            <?

            include ("db_connect_import_dump.php");

            if ($HTTP_POST_FILES['userfile']['tmp_name']) {

            ?>


               <table border="0" cellpadding="3" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1" height="53">
                <tr>
                  <td width="100%" height="17"><font face="Arial" size="2">Das Update wurde 
                  erfolgreich auf die Artikeldatenbank angewandt. Zu Kontrolle finden Sie 
                  nachstehend alle Einträge...</font></td>
                </tr>
                <tr>
                  <td width="100%" height="19">&nbsp;</td>
                </tr>
                <tr>

            <?

                $sql_file_array = $array = file($HTTP_POST_FILES['userfile']['tmp_name']);
                unlink($HTTP_POST_FILES['userfile']['tmp_name']);
                $count_sql_file_array = count($sql_file_array);

                for ($i=0; $i<=$count_sql_file_array; $i++) {
                    // trim beseitigt Leerzeichen und Zeilenumbrüche
                    $sql_file_array[$i] = trim($sql_file_array[$i]);

                    if ($sql_file_array[$i] != ""){
                        $entry = $sql_file_array[$i];
                        $result = mysql_query($entry); ?>
                        
                  <td width="100%" height="17"><font face="Arial" size="2"><? echo $sql_file_array[$i]; ?> - <font color="#008000"><b>erfolgreich</b></font></font></td>
                </tr>
              </table>

            <?
                    }

                }

            } else { ?>

               <table border="0" cellpadding="3" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1" height="53">
                <tr>
                  <td width="100%" height="17"><font face="Arial" size="2" color="#FF0000">Das Update ist <b>fehlgeschlagen</b>. Bitte kontaktieren Sie den Administrator!</font></td>
                </tr>
              </table>

            <? } ?>

            </form>

            </body>

            </html>
            Ich hoffe, es ist euch klar, was hier passiert. Falls nicht, einfach Fragen

            Greetz Lukas

            Kommentar


            • #7
              Es tut mir ja soooo leid, dass ich gegen das Gebot, Script mit "k" zu schreiben, verstoßen habe. Wirklich !
              Naja, wenn sich da mal keiner - ach was, ist auch egal. Aber es sollte wohl nachvollziehbar sein, dass man mehr findet, wenn man die geläufige (oder auch beide) schreibweise(n) benutzt, oder?

              Und mit erstellen habe ich auch nichts gefunden.
              Vor erstellen meines Posts habe ich selbst mit der suche geprüft und auch gefunden. muss an dir liegen!

              Vielleicht wäre es mal nicht so schlecht, du würdest den Leuten einfach helfen, in dem du mal Suchbegriffe vorschlägst, die sie verwenden sollen.
              Jetzt sag nicht, das hätte ich nicht gemacht! Aber ich sehe es nicht ein, euch die Lösung in den Allerwertesten zu schieben.

              Es ist nicht jeder Forum-Nutzer so versiert, wie du!
              Das hast du gesagt und gleichtzeitig bewiesen:
              Sorry, der Code ist mir zu hoch
              In diesem Sinne.

              Kommentar


              • #8
                @TobiaZ

                Hör mal, ich habe eigentlich nicht vor, mich andauernd nur zu ärgern, aber als ich die Posts so durchgesehen habe, ist mir eben aufgefallen, dass du meistens so agierst:

                Ein User schreibst sein Prob: Ich bin Anfänger in PHP und möchte gerne das und das machen. Dann postest du gleich mal, dass es ja nicht so schwer sein kann, diese oder jene Funktion zu suchen und sich das Skript zusammen zu bauen. Na wenn dieser User Anfänger ist, wird er das wohl kaum alleine schaffen und wenn doch, wäre er nicht auf dieses Forum angewiesen!

                Aber es ist ja egal, Hauptsache ist, dass ich mein Skript habe und es gepostet habe, sodass auch Leute, die so etwas in der Zukunft brauchen können, Zugriff darauf haben!

                Gute Nacht!
                Lukas

                Kommentar


                • #9
                  Aber es ist ja egal, Hauptsache ist, dass ich mein Skript habe und es gepostet habe, sodass auch Leute, die so etwas in der Zukunft brauchen können, Zugriff darauf haben!
                  Deiner Auffassung nach, wäre das ja gar nicht nötig. Weil man kann ja immer wieder die gleiche frage stellen, wol? Naja, beenden wir das Thema, denn so wichtig ist das mit sicherheit nicht. Ich wünsche trotzdem eine angenehme nacht.

                  Kommentar


                  • #10
                    Die wünsche ich auch!

                    Grüße Lukas

                    Kommentar


                    • #11
                      kann mann die dump erstellung auch irgendwie auf eine komplette datenbank ausweiten?

                      So, dass er halt die Daten von allen Tabellen in einer Datenbank in dem dump file speichert.

                      Gruß
                      Thomas

                      Kommentar


                      • #12
                        japp..

                        Kommentar


                        • #13
                          Original geschrieben von spikis
                          kann mann die dump erstellung auch irgendwie auf eine komplette datenbank ausweiten?

                          So, dass er halt die Daten von allen Tabellen in einer Datenbank in dem dump file speichert.

                          Gruß
                          Thomas
                          Dazu findest Du in den Codeschnipsel sogar ein fertiges Skript von Abraxax.

                          Kommentar


                          • #14
                            geht das ganze auch andersrum?

                            habe eine Datei (komplettes Dump einer DB) und möchte dass alle Tabellen + Daten erstellt werden.

                            Ne PHP Funktion gibbet da Imho nicht? mysql oder snippet bin ich auch noch nicht fündig geworden.
                            ICH BIN ICH!!!

                            Kommentar


                            • #15
                              Lies mal hier:
                              http://www.phpbb.de/doku/kb/artikel.php?artikel=8

                              Kommentar

                              Lädt...
                              X