Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehlercode 'Resource id #8'

Einklappen

Neue Werbung 2019

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

  • Fehlercode 'Resource id #8'

    Hallo zusammen,

    ich habe folgendes Problem, dass ich anscheinend ein Attribut einen nicht gültigen Wert zuweise (SELECT Abfrage).
    Wenn ich das Attribut ausgebe um zu kontrollieren welchen Wert es hat, dann bekomme ich den Wert ''Resource id #8' zurück. Wofür steht diese Fehlermeldung?

    Ich habe hier den Code:

    $credmemo = db2_exec($conn, "SELECT RART FROM " . $PGMLIB . ".RK WHERE RENR = $RENR");

    if('AG' == trim($credmemo))
    {
    $invoice = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" .
    .....

    Ich weise dem $credmemo einen Wert zu, wenn dieser 'AG' ist, dann trifft das zu, ansonsten halt ein anderer Code. In meinem Bsp trifft immer nur das else zu obwohl der Wert bei der Abfrage eigentlich 'AG' ergeben müsste.

    Anscheinend stimmt die Select-Abfrage nicht oder kann sich den Wert einfach nicht richtig von der DB holen.
    Wenn ich das Attribut hardcodiere und einen Wert zuteile, dann gibt er mir diesen auch korrekt aus.

    mfg


  • #2
    http://php.net/manual/en/function.db2-exec.php
    Der Rückgabewert ist eine Resource, du musst noch fetchen um ans Ergebnis der Abfrage zu kommen.

    Wenn ich das Attribut hardcodiere und einen Wert zuteile, dann gibt er mir diesen auch korrekt aus.
    Wat?
    Relax, you're doing fine.
    RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

    Kommentar


    • #3
      Wofür steht diese Fehlermeldung?
      Das ist keine Fehlermeldung, du versuchst nur was falsch auszugeben. Du bekommst von der Datenbank was anderes zurück was du erwartest.

      Anscheinend stimmt die Select-Abfrage nicht oder kann sich den Wert einfach nicht richtig von der DB holen
      Nicht raten... Schau in die Doku, schau dir Beispiele (die es sicher dort gibt) an, benutze Google, das kam schon so oft vor und benutze für Code/Quelltext bitte die dafür vorgesehenen Code-Tags hier im Forum.

      Danke!
      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        http://de2.php.net/db2_exec
        db2_exec gibt eine Resource zurück, sieh dir die Beispiele in der Doku an, wie du weiter vorgehen musst um die Ergebnisse aus der Resource zu ziehen.
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          Danke vorerst einmal für eure Hilfe, bin jedoch ein ziemlicher php-Anfänger, sodass mir das recht schwer fällt.

          Haben nun den Code angepasst und ein fetch gemacht - leider weiterhin ohne Erfolg, es zieht immer die else-Option, wenn das Feld RART den Wert 'AG' hat:

          PHP-Code:
          $query = db2_exec($conn, 'SELECT RART FROM ' . $PGMLIB . '.RK WHERE RENR = ' . db2_escape_string($RENR) .'');
          $row = mysql_fetch_row($query);
          $credmemo = $row[0];
              
          if($credmemo == 'AG')
              {        $invoice = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" .
                         '<' . $global_ns . 'Invoice ' .
                                            'xmlns:eb="http://www.ebinterface.at/schema/4p0/" ' .
                                            'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' .
                                            'xsi:schemaLocation="http://www.ebinterface.at/schema/4p0/ http://www.ebinterface.at/schema/4p0/Invoice.xsd" ' .
                                            'eb:GeneratingSystem="dcc eRechnung 1.0" ' .
                                            'eb:DocumentType="CreditMemo" eb:InvoiceCurrency="EUR" eb:Language="ger">' . "\n";
              }
              else
              {    ...... }

          Kommentar


          • #6
            ja wenn ich beim Attribut $credmemo nicht den Wert via SELECT versuche zu holen, sondern gleich auf 'AG' setze, dann funktioniert es eh.

            Kommentar


            • #7
              Auch als Anfänger sollte man sich mit debugging beschäftigen. Lass dir Variablen ausgeben und vergleich, ob die werte stimmen etc.
              Zudem ist die mysql_-Erweiterung veraltet und sollte nicht mehr verwendet werden. -> msqli_, PDO
              Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

              Kommentar


              • #8
                Zitat von walchi11 Beitrag anzeigen
                ja wenn ich beim Attribut $credmemo nicht den Wert via SELECT versuche zu holen, sondern gleich auf 'AG' setze, dann funktioniert es eh.
                Zitat von VPh Beitrag anzeigen
                http://php.net/manual/en/function.db2-exec.php
                Der Rückgabewert ist eine Resource, du musst noch fetchen um ans Ergebnis der Abfrage zu kommen.


                Wat?
                ja wenn ich beim Attribut $credmemo nicht den Wert via SELECT versuche zu holen, sondern gleich auf 'AG' setze, dann funktioniert es eh.

                Kommentar


                • #9
                  Zitat von Geromel Beitrag anzeigen
                  Auch als Anfänger sollte man sich mit debugging beschäftigen. Lass dir Variablen ausgeben und vergleich, ob die werte stimmen etc.
                  Zudem ist die mysql_-Erweiterung veraltet und sollte nicht mehr verwendet werden. -> msqli_, PDO
                  Ich habe die Werte schon ausgeben lassen

                  bei $query bekomme ich gleich wieder die Meldung mit 'Resource id #8'

                  Kommentar


                  • #10
                    Zitat von VPh Beitrag anzeigen
                    http://php.net/manual/en/function.db2-exec.php
                    Der Rückgabewert ist eine Resource, du musst noch fetchen um ans Ergebnis der Abfrage zu kommen.

                    Wer lesen kann ist klar im Vorteil...
                    Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

                    Kommentar


                    • #11
                      Zitat von walchi11 Beitrag anzeigen
                      Ich habe die Werte schon ausgeben lassen

                      bei $query bekomme ich gleich wieder die Meldung mit 'Resource id #8'
                      http://php.net/manual/en/function.db2-fetch-assoc.php
                      http://php.net/manual/en/function.db2-fetch-object.php
                      http://php.net/manual/en/function.db2-fetch-row.php

                      Such dir was aus. Die Doku und Logik sagt dir, wann welche Funktion in deiner Situation passend ist.

                      Die Funktionssignatur von db2_exec sieht wie folgt aus:

                      Code:
                      resource db2_exec ( resource $connection , string $statement [, array $options ] )
                      D.h. du bekommst eine Resource zurückgegeben und keinen für dich zugänglichen Wert (Stell dir das vereinfacht als einen Zeiger auf die tatsächlichen unverarbeiteten Daten deines Ergebnisses vor). Mithilfe der der Rückgabe der Funktion und einer der oben genannten Funktionen kannst du das Ergebnis der Abfrage in deiner Anwendung nutzbar machen.

                      Als Basis:
                      http://php.net/manual/en/language.types.resource.php
                      Zitat von nikosch
                      Naja, anscheinend spricht die Steckdose kein HTTP. LOL

                      Kommentar

                      Lädt...
                      X