große datenmengen in tabellenfeld einfügen

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

  • große datenmengen in tabellenfeld einfügen

    ich habe eine tabelle "videos" mit mehreren feldern,
    unteranderem auch einem longblob-feld für die eigentlichen mpeg und rm-videodateien. aber ein insert into-befehl übers
    netzwerk (php) geht nur bei kleinen datenmengen. meine datei
    ist z.b. 1,5 MB groß und der insert-befehl geht da nicht mehr wohl aber bei dateien um 100-200kb. wie kann ich meine
    videodatei in das spezielle longblob-feld EINZELN laden?
    bei "load data" kann man ja nur alle tabellenfelder auf einmal einfügen oder gibt es da einen trick?

    p.s. ich will nicht auf links der videos in feldern ausweichen !!!

    tenim

  • #2
    "load data"? Mit welcher Datenbank und welchem Client/Script arbeitest du denn?

    CAT Music Files

    Kommentar


    • #3
      Achso, du meinst wohl sowas wie "LOAD DATA INFILE"... Das ist eigentlich nicht für sowas wie deinen Zweck konzipiert - nimm lieber ein ganz normales INSERT - was meinst du denn mit "geht da nicht mehr"?

      CAT Music Files

      Kommentar


      • #4
        ich benutze mysql und greife über ein lan auf den datenbankserver zu. wenn ich dann eine abfrage über php
        starte(vom client) liefert "mysql_query" einen fehler zurück. aber der selbe befehl funktioniert bei kleineren
        dateien. ich lese die datei erst komplett in eine
        variable "$daten" und füge sie dann mit "mysql_query" in die datenbank ein.

        tenim

        [Editiert von tenim am 31-10-2001 um 14:31]

        Kommentar


        • #5
          Was für einen Fehler denn?

          CAT Music Files

          Kommentar


          • #6
            könnte es sein das einfach ein Timeout kommt, das php Script betreffend, weil dieses nach 30 sec. abbricht ?

            Kommentar


            • #7
              Er hat ja gemeint, dass die query einen fehler zurückgibt... Aber du hast recht... Der Fehler könnte durchaus bei der max_execution_time liegen.

              CAT Music Files

              Kommentar


              • #8
                das script sieht grob so aus:

                $befehl="insert into vidos values(null,$richtung,'$dateiname','$beschreibung','$daten')";

                if (! $resultat=mysql_query($befehl,$sql_handle) )
                {
                echo "Fehler: Konnte Abfrage nicht ausfuehren.";
                sleep(2);
                exit;
                }

                und wenn ich diese abfrage starte kommt obige fehlermeldung
                was heissen muß das der befehl nicht ordnungsgemäß ausgeführt wurde. wenn ich aber in $daten eine kleinere datei reinlade, dann geht es.
                timeout kann auch nicht das problem sein, weil die fehlermeldung schon nach ca. 2 sekunden kommt.

                tenim

                Kommentar


                • #9
                  hmm,

                  dann ist die Datei wohl zu gross, gibts ne Quota beim SQL Server ? Gibts sowas überhaupt ? Ich meine so wie eine max. Grösse bei eMails oder so ?

                  ka.

                  Kommentar


                  • #10
                    Änder doch bitte das echo um in:

                    echo "Fehler: Konnte Abfrage nicht ausfuehren: ".mysql_error();

                    und sag uns dann, was als Fehlerbeschreibung ausgegegen wurde.

                    CAT Music Files

                    Kommentar


                    • #11
                      es erscheint die meldung "MySQL server has gone away".

                      tenim

                      [Editiert von tenim am 31-10-2001 um 15:56]

                      Kommentar


                      • #12
                        Da haben wirs ja... Offensichtlich scheint es an irgendeiner zeit- oder datenabhängigen Einstellung des Servers zu liegen... Ich mach mich mal kurz schlau.

                        CAT Music Files

                        Kommentar


                        • #13
                          max_allowed_packet: The maximum size of one packet. The message buffer is initialized to net_buffer_length bytes, but can grow up to max_allowed_packet bytes when needed. This value by default is small, to catch big (possibly wrong) packets. You must increase this value if you are using big BLOB columns. It should be as big as the biggest BLOB you want to use. The current protocol limits max_allowed_packet to 16M.

                          Schau mal, was die bei dir für einen Wert hat und setz ihn bei Bedarf höher.

                          CAT Music Files

                          Kommentar


                          • #14
                            nächstes:
                            query_buffer_size: The initial allocation of the query buffer. If most of your queries are long (like when inserting blobs), you should increase this!

                            CAT Music Files

                            Kommentar


                            • #15
                              vgl. hierzu unter Umständen auch
                              http://www.mysql.com/doc/G/o/Gone_away.html

                              CAT Music Files

                              Kommentar

                              Lädt...
                              X