Tabelle nach CSV exportieren

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

  • Tabelle nach CSV exportieren

    Hallo,
    ist es möglich, ohne auf shell zu zugreifen, irgendwie elagnt und schnell eine Tabelle in ein CSV hauen, so wie das phpmyadmin macht?
    Per hand ist es natürlich möglich, aber ich such eine Methode, wo ich wenig selber machen muss, sowas wurde bestimmt schonmal benötigt
    SQL Injection kitteh is...

  • #2
    Tabelle öffnen.. Datei öffnen. Werte rein (mit Trennzeichen getrennt)
    Beides schliessen !?
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      Tolle Sache, mich würde eher sowas wie SELECT * FROM tabelle INTO OUTFILE "Datei" nur ist die Datei im mysql verzeichnis, an das ich auf einem Webspace nicht rankomme.

      Es soll schon automatisiert laufen, nicht nur einmalig
      SQL Injection kitteh is...

      Kommentar


      • #4
        SELECT a,b,a+b INTO OUTFILE "/tmp/resultat.text"
        FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY "\n"
        FROM tabelle;
        Quelle: MySQL ----> H A N D B U C H <----
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          Danke, aber wie gesagt, ich komme doch garnicht an dieses Verzeichnis dran, woher soll ich wissen, was relativ zu einem mysql Verzeichnis ist, wenn ich auf sowas keinen Zugriff habe?
          SQL Injection kitteh is...

          Kommentar


          • #6
            Wenns mit PHP sein darf dann geht sowas..

            PHP-Code:
            function export_table($table$file)
            {
                
            $fh fopen($file,"w");
                
                
            $sql "SELECT * FROM `$table`";
                
            $res mysql_query($sql) or die(mysql_error());
                
                
            $first true;
                while (
            $row mysql_fetch_array($resMYSQL_ASSOC))
                {
                    if (
            $first == true)
                    {
                        
            fwrite($fhimplode(";",array_keys($row))."\n");
                        
            $first false;
                    }
                    
            fwrite($fhimplode(";",$row)."\n");
                }
                
            fclose($fh);

            Ist ungetestet. Ganz automatisch nur mit Cronjob.
            gruss Chris

            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

            Kommentar


            • #7
              Wie ebenfalls bereits sagte, kenne ich ja beide Methoden, es von Hand zu erledigen ist kein Problem, ich habe mich nur nach etwas verlässlichem umgeschaut, weil man so schonmal an den Script Timeout stößt
              SQL Injection kitteh is...

              Kommentar


              • #8
                Also ohne Script und ohne Shell Zugriff ??
                pma hat afaik auch nen Timeout bei ZU großen Datenmengen, da auf PHP Basierend.

                Entweder max execution time in der php.ini hochsetzen (was warscheinlich nicht möglich ist) oder die funtion umschreiben das diese mit " SELECT * from `$table` limit 0,500 und dann limit 500,500 arbeitet.

                Oder es geht nicht.

                (ggf. noch shell_exec("mysqldump usw.") aber das willst du wahrscheinlich wieder nicht)
                gruss Chris

                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                Kommentar


                • #9
                  Die shell Idee verwende ich für Crons, aber ich bin mir nicht sicher, wie die mir eine csv auswerfen soll, ferner muss es für shell eine phpx sein und daher kann ich es in den normalen .php Dateien nicht ausführen
                  SQL Injection kitteh is...

                  Kommentar


                  • #10
                    Mmh.. mysqldump bietet doch sowas wie

                    -T --tab Creates tab separated textfile for each table to given
                    path. (creates .sql and .txt files). NOTE: This only
                    works if mysqldump is run on the same machine as the
                    mysqld daemon.

                    Und

                    --fields-terminated-by=name
                    Fields in the textfile are terminated by ...

                    gruss Chris

                    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                    Kommentar

                    Lädt...
                    X