Rüdiger: Oracle

hallo zusammen

hab vollgendes problem:
ich bekomme keinen wert in die variable $var_pfad.
das sql-statement funzt wenn ich es im sql-worksheet eingebe und ich bekomme von oracle und php keinen fehler.
hab sowas schon einige male gemacht und immer gings, ich seh bestimmt den wald vor lauter bäume nicht :-(

meine funktion:
function archivpfad($db_connect){
  $sql = "SELECT DISTINCT arch.PFAD
                     FROM DATEIPFAD arch,
                          DOKU doc
                    WHERE doc.F_DATEIPFADNR = arch.P_DATEIPFADNR";
  $stmt = oci_parse($db_connect, $sql);
  oci_execute($stmt)
     OR ($mpError = oci_error($stmt)
         AND die($mpError['message']));
  $var_pfad = oci_result($stmt,'PFAD');
  oci_free_statement($stmt);
  oci_close($db_connect);
  return $var_pfad;
}

vielen dank im voraus für eure hilfe

Gruß Rüdiger

  1. Hallo,

    $sql = "SELECT DISTINCT arch.PFAD
                         FROM DATEIPFAD arch,
                              DOKU doc
                        WHERE doc.F_DATEIPFADNR = arch.P_DATEIPFADNR";

    ...

    $var_pfad = oci_result($stmt,'PFAD');

    Ohne jetzt die Details von PHP und dessen Oracle-Schnittstelle zu kennen:

    Kann es sein, dass die Spalte des Ergebnisses 'ARCH.PFAD' heisst?

    Grüße
      Klaus

    1. hallo clynx + Klaus

      sorry, hätte ich dazu schreiben sollen :-(
      mit nem alias hab ich es auch schon versucht
      hab auch PFAD schon in " und nicht in '
      und arch.PFAD geht auch nicht, das arch. ist nur für die DB damit die weiss welches feld in welcher tabelle steht

      trotzdem danke für die hilfe

      Gruß Rüdiger

  2. Hey,

    meine funktion:
    function archivpfad($db_connect){
      $sql = "SELECT DISTINCT arch.PFAD
                         FROM DATEIPFAD arch,
                              DOKU doc

    [...]

    $var_pfad = oci_result($stmt,'PFAD');
      oci_free_statement($stmt);
      oci_close($db_connect);
      return $var_pfad;
    }

    Nur so eine Idee, warum gibst du der Spalte keinen Alias, ich denke deswegen mag der nicht.

    SELECT DISTINCT arch.PFAD AS PFADNAME
    und dann
    $var_pfad = oci_result($stmt,'PFADNAME');

    Lieben Gruß
    clynx

  3. Hallo,

    oci_execute($stmt)
         OR ($mpError = oci_error($stmt)
             AND die($mpError['message']));

    Gut, ich habe mir einmal kurz die Doku antgesehen, und ich denke, dass da wohl noch ein oci_fetch() fehlt.

    $var_pfad = oci_result($stmt,'PFAD');

    Grüße
      Klaus