BLOB aus Oracle XE mit PHP anzeigen

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

  • BLOB aus Oracle XE mit PHP anzeigen

    Hallo,

    habe ein Problem. Bekomme ein Bild das als BLOB in einer Oracle XE gespeichert ist, einfach nicht angezeigt. Ich hab schon Stunden gegoogelt, probiert und gemacht. Es funktioniert einfach nicht. Ich bin der Verzweiflung nahe
    <?php

    require("./config.php"); // dort stehen die Verbindungdaten drin


    $con = oci_connect($user, $password, $database);


    $query = "select foto from fahrer where personenid = 70";
    $result = oci_parse($con, $query);

    OCIBindByName($result, "foto", $foto);
    oci_execute($result);

    header("Content-Type: image/jpeg");

    echo $foto;
    ?>

    Ausgabe ist einfach nur "http://localhost/bloblesen.php

    Was mache ich falsch? Wäre super dankbar für konkrete Hilfe!

  • #2
    was heißt "ausgabe ist nur ..."?
    nimm mal eben kurz den header raus und zeig mal den var_dump von $foto.

    Kommentar


    • #3
      http://forum.de.selfhtml.org/?t=146694&m=951868
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        @ penizilin: Danke, war schon mal hilfreich. Gibt "NULL" zurück. Im SQL-Developer wird mir im Feld aber ein Blob angezeigt bzw. kann es über "View Image" anzeigen lassen. Das scheint also hinterlegt zu sein. Gebe ich die Abfrage so im Developer ein, kommt keine Ausgabe, liegt aber wohl daran das er das der Developer kein Foto nach Abfrage darstellen kann.

        Irgendwas scheint aber bei der Abfrage schiefzulaufen, keine Ahnung warum.

        @wahsaga: Ja, habs auch im selfhtml-Forum, dort scheint mir aber keiner helfen zu könne. Ich bin wirklich der Verzweifelung nahe. Es will und will einfach nicht funktionieren.

        Kommentar


        • #5
          dann kläre erst mal, ob das foto überhaupt drin ist.

          Kommentar


          • #6
            Ja, es ist drin. Ich habs per Webbrowser reingeladen. Vorher war nichts drin, jetzt ist die Anzeige Blob da und man kann sich das Bild anschauen. Das geht nur nich über die Abfrage, weil es der SQL-Developer da nicht darstellen kann, sondern nur über anklicken auf der Tabellenübersicht.

            Habe gerade mal versucht die personenid abzurufen. Auch da wird mir "NULL" angezeigt. Die ist aber auch definitiv in der DB, wird mir bei SQL-Abfrage im Developer oder SQL-Plus ausgegeben. Da stimmt wohl irgendwas schon mal mit einer Abfrage nicht. Aber wüsste nicht wo da was falsch ist. Der SQL-Befehl stimmt wie gesgagt, geht ja über SQL-Plus oder Developer.

            Kommentar


            • #7
              was ergeben oci_error() und oci_num_rows()?

              Kommentar


              • #8
                Error ergibt nichts, scheint also durchzulaufen, aber er gibt wie erwartet nichts zurück, also num_rows ergibt 0.

                Aber nochmal: Gib ich die Abfrage, genau so wie sie der Variablen $query zugewiesen wird in SQL-Plus oder SQL-Developer ein, bekomme ich das gewünschte Ergebnis.

                Kommentar


                • #9
                  gehe mit var_dump durch die variablen. wo hängt's?
                  verzichte auf OCIBindByName, versuche es mit oci_fetch.

                  p.s. regeln befolgen!

                  Kommentar


                  • #10
                    So, hab die Bindung hinbekommen. Jetzt wird der Datensatz selektiert.

                    1row
                    object(OCI-Lob)#1 (1) { ["descriptor"]=> resource(4) of type (oci8 descriptor) }

                    Das ist die Ausgabe die ich jetzt erzeugt habe. Also 1 Zeile und dann kommt das Bild. Nun bin ich wieder beim eigentlichen Problem. Der Ausgabe. Habe

                    Header( "Content-type: image/jpeg");
                    echo $foto;

                    wieder hinzugefügt, aber dann kommt wieder nur die Ausgabe "http://localhost/bloblesen.php"

                    Kommentar


                    • #11
                      du sollst die regeln befolgen!
                      und was ist $foto?

                      Kommentar


                      • #12
                        Danke, hatte es inzwischen schon selbst hinbekommen mit der Bindung der Variablen. Hier zur Hilfe noch mal der Quelltext, so wie er jetzt ist, habe die Ausgabe der selektierten Zeilen und var_dump wieder rausgenommen.
                        PHP-Code:
                        <?php

                        require("./config.php"); // dort stehen die Verbindungdaten drin



                        $con oci_connect($user$password$database);                    
                        $result=OCIParse($con"select foto from fahrer where personenid = 70"); 
                        OCIExecute($result);
                        OCIFetch($result);
                        $foto=OCIResult($result"FOTO");



                            
                        Header"Content-type: image/jpeg");
                            echo 
                        $foto;
                        ?>
                        Zuletzt geändert von beppe; 20.02.2007, 17:32.

                        Kommentar


                        • #13
                          Sorry, was meinst du mit "Regeln befolgen"?

                          Kommentar


                          • #14
                            http://www.php-resource.de/forum/sho...threadid=50454

                            Kommentar


                            • #15
                              Ah, ok, danke. Hab den Quellcode nun farblich markiert. Hab mir auch mal nur die Variable in dem das Foto ist ausgeben lassen.

                              Ergebnis : Object id #1

                              Error_Report bringt nichts ein, also ob mit oder ohne Header.

                              Kommentar

                              Lädt...
                              X