Merkwürdiges Problem mit MySQl-Blobs

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

  • Merkwürdiges Problem mit MySQl-Blobs

    Hallo,

    wollt mich mal erkundigen, ob das jemand kennt:

    Habe Tabelle, in der Bilder als Blobs abgespeichert werden.

    Lies die in der Form:

    PHP-Code:
    header('Content-Type: image/$type');
    echo 
    $image
    aus.

    Nach einiger Zeit wird nun KEIN EINZIGES Bild mehr aus der gesamten Tabelle ausgelesen, solange bis irgendeines von denen upgedatet wird, dann werden wieder alle anderen ebenfalls ausgelesen.

    Bin hier wirklich beinah am Verzweifeln, keine Ahnung was da abgeht.

    Hat jemand Ideen?

    Danke schonmal...

  • #2
    Zitat von ThemBones Beitrag anzeigen
    Nach einiger Zeit wird nun KEIN EINZIGES Bild mehr aus der gesamten Tabelle ausgelesen, solange bis irgendeines von denen upgedatet wird, dann werden wieder alle anderen ebenfalls ausgelesen.
    Kannst du mal ein kliein wenig mehr ins Detail gehen? Was wird wie upgedated? Wie erfolgt das Auslesen und nach welchen Kriterien?

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      @TO: Warum speicherst du Bilder in der DB statt im Dateisystem?

      Kommentar


      • #4
        Zitat von Kropff Beitrag anzeigen
        Kannst du mal ein kliein wenig mehr ins Detail gehen? Was wird wie upgedated? Wie erfolgt das Auslesen und nach welchen Kriterien?

        Peter
        Hi,

        Auslesen erfolgt in der Form "select content from images where id = x", mehr passiert da eigentlich nicht.

        Ist an und für sich sehr simpel.

        Mit dem Update mein ich, wenn ein bestehender Eintrag mit einem neuen Blob upgedatet wird.

        Aber ich denk ich bin schon näher dran, das Problem ist wohl dass in bestimmten Fällen irgendeine Ausgabe vor dem Aufruf der header-funktion passiert. Eben solange bis ein neuer blob raufgeladen wird; ich tipp mal auf irgendeine verschluckte fehlerausgabe vom mysql

        Kommentar


        • #5
          Zitat von onemorenerd Beitrag anzeigen
          @TO: Warum speicherst du Bilder in der DB statt im Dateisystem?
          Auf das hab ich gewartet

          Ums kurz zu machen: ist aus bestimmten Gründen leider keine Alternative.

          mysql - log spuckt mal keine fehler aus.

          Kommentar


          • #6
            Wenn du Meldungen vermutest, dann solltest du die Vermutung aktiv überprüfen und nicht passiv unsere Hilfe abwarten.
            Weil:
            Wir kennen das Script nicht.
            Wir sehen die Meldungen auch nicht.
            Wir, und schon gar nicht ich, sitze an deinem Monitor und Tastatur.

            Das MySQL Log ist der falsche Ort, wenn dein PHP Meldungen wirft.
            Untersuche das PHP und Apache Log.
            Auch in "/var/log/messages" könnte sich was finden.
            Wir werden alle sterben

            Kommentar


            • #7
              Zitat von combie Beitrag anzeigen
              Wenn du Meldungen vermutest, dann solltest du die Vermutung aktiv überprüfen und nicht passiv unsere Hilfe abwarten.
              Weil:
              Wir kennen das Script nicht.
              Wir sehen die Meldungen auch nicht.
              Wir, und schon gar nicht ich, sitze an deinem Monitor und Tastatur.
              Wer sagt ich warte passiv eure Hilfe ab? Scheinst hellseherische Fähigkeiten zu haben. Ich such und suche immer noch seit Stunden rum, sonst wär ich nicht hier.

              Zitat von combie Beitrag anzeigen
              Das MySQL Log ist der falsche Ort, wenn dein PHP Meldungen wirft.
              Ich sagte, ich tippe mal auf eine verschluckte Fehlerausgabe der Datenbank.
              Irgendwo wird die eben von irgendeinem Script aufgegriffen und ausgespuckt. Ich sitz hier vor einer relativen komplexen, mehr oder weniger undokumentierten Anwendung im Produktionsbetrieb, das ist alles andere als lustig deshalb lass ich mir im Moment ungern vorwerfen ich säss hier rum und warte auf deine Antworten.

              Nix für ungut.

              Kommentar


              • #8
                Nichts desto Trotz ist es nur dir möglich an die Meldungen zu kommen.
                Weder mir noch irgendjemand anderem.

                Ich sagte, ich tippe mal auf eine verschluckte Fehlerausgabe der Datenbank.
                Die Datenbank macht keine Fehlerausgaben.
                Das kann PHP, aber nicht die DB.

                Irgendwo wird die eben von irgendeinem Script aufgegriffen und ausgespuckt.
                Irgendwo und irgendeinem ist nicht hilfreich.
                Damit kann ich nix anfangen, so gern ich auch möchte.

                Ich sitz hier vor einer relativen komplexen, mehr oder weniger undokumentierten Anwendung im Produktionsbetrieb
                Ich möchte nicht kommentieren ob das jetzt schön oder schade ist ...
                Aber wie denkst du, dass man dir helfen könnte?

                Scheinst hellseherische Fähigkeiten zu haben
                In Grenzen, ja...

                Hast du mittlerweile die Apache Logs kontrolliert?
                Hast du mittlerweile die PHP Logs kontrolliert?
                Hast du mittlerweile die ausgelieferten Daten im Hexeditor betrachtet?
                Warum schimpfst du mit mir, aber gehst nicht auf meine Fragen(Ansagen) ein?



                PS:
                Meldungen werde nicht Verschluckt.
                Sorry, wenn ich etwas grob rüber gekommen bin, aber ich sehe bei deiner gehimniskrämerei wenig Chancen dir zu helfen.
                Zuletzt geändert von combie; 21.08.2009, 11:43.
                Wir werden alle sterben

                Kommentar


                • #9
                  Zitat von combie Beitrag anzeigen
                  Die Datenbank macht keine Fehlerausgaben.
                  Das kann PHP, aber nicht die DB.
                  Ich red von den Logs, ich denk dass weisst du

                  Zitat von combie Beitrag anzeigen
                  Hast du mittlerweile die Apache Logs kontrolliert?
                  Hast du mittlerweile die PHP Logs kontrolliert?
                  Hast du mittlerweile die ausgelieferten Daten im Hexeditor betrachtet?
                  Warum schimpfst du mit mir, aber gehst nicht auf meine Fragen ein?
                  Alles kontrolliert ja und nix auffälliges gefunden. Sorry, wollt dich nicht anpatzen, während du versuchst mir unter die Arme zu greifen, kannst nix für meinen Stress. Entschuldige bitte

                  Du hast wohl recht, das Problem wird im Forum wohl eher schwer zu lösen sein. Streng genommen darf ich ja nichtmal Codeschnippsel posten, das machts etwas schwierig für mich.

                  Dachte nur, vielleicht hat jemand schonmal ein ähnliches Problem gehabt. Hab auch in den MySQL Bug Reports nix gefunden was damit was zu tun haben könnte. Dann kanns einfach nur mehr daran liegen, dass ich ganz einfach in der falschen Richtung such'. Werd noch mal in mich gehen. Und wie gesagt, nix für ungut

                  Kommentar


                  • #10
                    Alles kontrolliert ja und nix auffälliges gefunden.
                    Wenn fehlerhafte Images ausgeliefert werden, dann hat das eine Ursache!
                    Das steht schon mal felsenfest.
                    Untersuche die ausgelieferten Images!!

                    Nach einiger Zeit wird nun KEIN EINZIGES Bild mehr aus der gesamten Tabelle ausgelesen, solange bis irgendeines von denen upgedatet wird, dann werden wieder alle anderen ebenfalls ausgelesen.
                    Wie kommst du darauf? Auf "nicht ausgelesen"?
                    Wir werden alle sterben

                    Kommentar


                    • #11
                      Zitat von combie Beitrag anzeigen
                      Wenn fehlerhafte Images ausgeliefert werden, dann hat das eine Ursache!
                      Allerdings...danke combie für deine Zeit und Mühe, ich habs gefunden und es reduziert sich auf ein etwas peinliches update ohne where....
                      oh mann.

                      dann kann ich jetzt beruhigt ins wochenende starten...

                      also nochmals danke!

                      Kommentar


                      • #12
                        Ist das Feld ein BLOB? Zeichensatz der Datenbankverbindung UTF-8? Dann kontrolliere mal den Zeichensatz der Tabelle und der Datenbank.

                        Kommentar


                        • #13
                          Mit den spärlichen Infos, die du rausrückst, kann ich zwar nur raten und total falsch liegen, aber ich hätte ein Szenario, in dem deine Beobachtung eintritt.

                          Bei jedem UPDATE wird gleichzeitig ein Timestamp gesetzt. Dieser Timestamp wird verwendet, um den Last-Modified-Header zu setzen. Bilder werden nur direkt aus der Datenbank geholt, wenn der Browser keine aktuelle Kopie hat. Nach einem UPDATE bekommen (aus Sicht des Browsers) alle Bilder einen neuen Timestamp und werden daher beim nächsten Aufruf wieder direkt aus der Datenbank geholt.

                          Gruß,

                          Anja
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar

                          Lädt...
                          X