maximal grösse bei fwrite() ???

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

  • maximal grösse bei fwrite() ???

    hi

    habe da ein scheiss problem, und zwar, habe ich ein script, welches nicht geht, also so halbe mindestens.

    und zwar macht das ein backu von einer mysql DB, und speichert das ganze als textdatei, macht schliesslich noch eine gZip version draus.

    also, das geht auch wunderbar, bis vor kurzem.

    und zwar ist das so:
    wenn ich beim mysql query ein LIMIT 0,1000 ranmache, dann macht er das backup halt nur mit 1000DS, aber dann geht es.

    wenn ich aber das backup von alles DS machen will, schafft er es nicht mehr, und beendet einfach ohne fehlerausgabe.


    also, ich denke das liegt nun daran, das der fwrite befehl irgendwie zu viele zeichen speichern müsste.
    er muss rund 5,5mb speichern.

    weiss jemand, ob nun dieser fwrite eine begrenzung von weiss ich wievielen bytes hat??

  • #2
    ich denke eher, dass dein timelimit für dein script erreicht wird, und daher ein abbruch erfolgt.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      glaub ich weniger, da mein max_exec_time bei sage und schreibe 7200 sekunden liegt, und meine max_input_time bei immerhin 600sek ist.
      die memory_limit immerhin bei 32Mb


      kann also kaum an dem liegen.

      auch ist noch genug platz auf der platte frei ( > 2gb)


      trotzdem danke für die schnelle antwort

      Kommentar


      • #4
        hi

        weiss den hier niemand, was da los sein könnte??

        Kommentar


        • #5
          halli hallo, bitte ist sehr dringend, ich kann jetzt keine backups mehr machen.

          weiss denn niemand rat??

          hiiiiiillllllffffffeeeee

          Kommentar


          • #6
            also ich geb euch jetzt doch mal den source, vielleicht nützt es doch noch.

            aber eben, als die tabelle noch etwas kleiner war, ging alles.

            PHP-Code:
            <?php 
            //ausgabe puffer löschen, dass alle echos fortlaufend angezeigt werden
            ob_implicit_flush(); 

            //weitermachen wenn der user das fenster schliesst?aber sicher doch
            ignore_user_abort(true);
             
            ?><html>
            <head>
            <title>BackUp</title>
            <link rel="stylesheet" type="text/css" href="inc/style.css">
            <style type="text/css">
            <!--
            body{
            margin-left:10px;
            margin-top:7px;
            }
            //-->
            </style>
            </head>
            <body bgcolor="#AFCCE7">
            <?php 


            if(eregi("filebackup",$type)){//klammer start "filebackup"
            echo "Erstelle BackUp...<br>\n";


            //verbindung zu mysql herstelltn
            include("../../require/include/connect.php");
             
            $path ="log/dump/"

            function 
            gzcompressfile($source,$level=9){
               
            $dest=$source.'.gz';
               
            $mode='wb'.$level;
               
            $error=false;
               if(
            $fp_out=gzopen($dest,$mode)){
                   if(
            $fp_in=fopen($source,'rb')){
                       while(!
            feof($fp_in))
                           
            gzputs($fp_out,fread($fp_in,1024*512));
                       
            fclose($fp_in);
                       }
                     else 
            $error=true;
                   
            gzclose($fp_out);
                   }
                 else 
            $error=true;
               if(
            $error) return false;
                 else return 
            $dest;
               }




             
            $file_name $path.date("d.m.Y_\u\m_H\.i\.s").".csv";
             

            // Start Ausgabe und Berechnung 

                
            unset($data);
              
            $data="";
                 
                
            $result=mysql_query("select * from filegrabber"); 
             
                    
            $anzahlmysql_num_rows ($result); 
                    
                
            $spaltenzahl mysql_num_fields($result); 
                
                    for (
            $i=0;$i<$anzahl;$i++) { 
                    
                            
            $zeile=mysql_fetch_array($result); 
                    
                            
                            for (
            $k=0;$k $spaltenzahl;$k++){ 
                      if(
            $k == ($spaltenzahl 1)) 
                      { 
                                    
            $data.="\"".addslashes($zeile[$k])."\""
                              } 
                      else 
                      { 
                                    
            $data.="\"".addslashes($zeile[$k])."\";"
                              } 
                    } 
                            
            $data.= "\r\n"
                    } 




            $fd fopen($file_name,"a+"); 

             
            fputs($fd$data); 

            fclose($fd);    
            gzcompressfile($file_name,9);
            unlink($file_name);
            echo 
            "Datei mit dem Namen \"<i>".basename($file_name).".gz</i>\" erstellt<br>\n\n";
            echo 
            "<span class='green'>BackUp erfolgreich erstellt</span>\n\n";
            }
            //klammer ende "filebackup"
            ?>
            Zuletzt geändert von fabio; 25.04.2004, 09:53.

            Kommentar


            • #7
              kannst du bitte mal aufhören deinen beitrag andauernd zu pushen ?
              es nervt !!! wenn dir niemand antwortet weiss es wohl niemand oder derjenige , der es weiss ist nicht online !!! also hör damit bitte auf

              Kommentar


              • #8
                Mann könnte ja sogar mal richtig antworten ... nur leider hat der Kerl ja immer noch kein richtiges deutsch gelernt ... warum und vor allem wo also sollte ich mir seine Frage erstmal übersetzen lassen??

                Anders gefragt ... warum sollte ich mir bei der Beantwortung seiner Frage Mühe geben, wenn der Herr sich nicht einmal bei der Fragestellung mühe gibt ...
                carpe noctem

                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                Kommentar


                • #9
                  öh du hast recht was will der eigentlich von uns ?

                  Kommentar


                  • #10
                    also nochmals.

                    ich hab meine fragen nochmals durchgelesen.
                    ist doch wohl klar.

                    der unterste satz im eröffnungs thread ist doch eine klare frage.

                    "weiss jemand, ob nun dieser fwrite eine begrenzung von weiss ich wievielen bytes hat??"


                    was kann ich dafür das ich halt mal noch ein newbie bin, und nicht alle heimtückischen kleinigkeiten von jedem achso unwichtigen befehl (oke, oke, fwrite ist nicht unwichtig) kenne.

                    im PHP handbuch konnte ich in den usercomments zwar finden, dass er wenn kein speicherplatz mehr auf der HDD frei ist, nur ein zero-byte-file erstellt, also einfach ohne inhalt.


                    das problem ist, es kommt nicht mal das.

                    ach ja, wenn doch noch jemand was zu meinem deutsch meint, sorry, ich bin auch kein meister, aber für das, dass ich erst vor 2 jahren in die schweiz eingereist bin, denke ich, beherrsche ich es doch recht gut.
                    und das mit der gross-klein-schreibung, schaut euch hier rum, selbst abraxax schreib immer klein.
                    verurteilt also nicht jemanden nach dem stil, mit welchem er zu schreiben pflegt.
                    danke

                    und das ich mit dem pushing nerve, das glaube ich, aber anders gesehen ist das halt ne art hilfe ruf.

                    ich habe diese frage schon in div. communitys und zwei newsgroups gepostet, leider wurde noch nirgends was gutes, rsp. brauchbares gepostet.

                    und da ihr aus eigener erfahrung aus die "cleversten" sind, zähle ich nun mal auf eure antwort, und ich darf hier sagen, dass hier sonst immer sehr schnell geanwortet wird.
                    leider hat sich dieser thread nach zwei tagen kaum ein stück nach vorne bewegt.
                    Zuletzt geändert von fabio; 25.04.2004, 00:11.

                    Kommentar


                    • #11
                      http://de2.php.net/de/fwrite
                      Wenn der length Parameter gegeben ist, wird das Schreiben nach length Bytes beendet, oder wenn das Dateiende (EOF) erreicht ist. Je nachdem was eher eintritt.
                      natürlich wird das auch dur die maximale dateigröße deines system beschränkt bei windows glaub ich 2 oder 4 GB
                      EDIT:
                      pushen ist trotzdem dreck und in vielen foren verboten
                      bzw. nach ner woche oder so darf man sein thread nochmal pushen aber nicht jeden tag

                      Kommentar


                      • #12
                        nun, also ich habe den optitionalen parameter $lenght nicht abgegeben, wie man aus dem script lesen könnte.
                        egal.

                        und also die datei ist nicht einaml 10megabyte gross, womit die dateigrösse _hoffenlich_ nicht erreicht ist

                        ich jetzt mal so provisorisch ein backup durch die *.frm *.MYI und *.MYD dateien gemacht.

                        allerdings finde ich es eher unschön.

                        Kommentar

                        Lädt...
                        X