[Oracle] ora 24374 definitoion nicht erfolgt...

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

  • [Oracle] ora 24374 definitoion nicht erfolgt...

    hallo, ich habe eine datenbankapplikation ertsellt mit php und oracle

    (php5.0.4/xampplight (apache2.0.54) und oracle10gr2 laufen alle auf einem windows xp rechner)

    wenn ich jetzt manchen code ausführe, kommt die meldung:
    -----------
    Warning: ocifetchstatement() OCIFetchStatement ora 24374 definitoion nicht erfolgt vor abruf oder ausführen und abruf in
    c:\...\database_class.php
    -----------

    also ocifetchstatement versucht sozusagen den fehler. ich hatte auch einmal stattdessen oci_fetch_all drinnstehen aber das verursacht ebenfalls den fehler ora 24374 wie oben erläutert.

    jetzt ist meine frage wo liegt dort der fehler?
    alles funktioniert, ich kann die datenabnk also schön maipulieren.
    select insert.. alles geht aber diese meldung kommt trozdem.

    brauch ihr noch eine beispielcode?

    könnte es an der php.ini und den oracle extensions liegen?

    ich hoffe ihr könnt mir beistehen

    gruss
    Zuletzt geändert von blunaluder; 13.01.2006, 09:33.
    www.flyer4fun.de

  • #2
    Ist ja nur eine Warnung, kein Fehler. Kannst du mit error_reporting() unterdrücken, wenn du sie wirklich los werden willst, mußt du etwas Code zeigen.

    Kommentar


    • #3
      hallo, danke für deine antwort, das werde ich gleich mal austetsen was du meintest.
      aber ansich würde ich gerne verstehen was dahintersteckt.

      PHP-Code:


      <?php

      ///////////////////////////////////////


      echo'<html>';
      echo
      '<head>    <title>auswahl</title>    </head>';
      echo
      '<body>';

      ############include##########################
      include("../gemeinsam/database_class2.php");    //database klasse
      include ("../gemeinsam/print.php");         //für perfect() print
      include("../gemeinsam/error.php");        //fehlercode auswertung
      include("../gemeinsam/funktionen.php");

      #############session#######################
      //Session initialisieren
          
      session_start();
      $login=$_SESSION['login'];
      if(
      $_SESSION['login']==''){echo'Bitte erstmal einloggen. Danke.';exit;}

      ###############datenbank###################
      //Datenbank-Objekt erzeugen
        
      $db = new Database();
      //Verbindung mit der Datenbank herstellen
        
      $db->connect_db();
        
      #############session#########################
      $zeilen=$_POST['zeilenzahl'];
      debug('Zeilen = '$zeilen); 
      //debug ist eine ausgabefunktion die man anschalten kann

      $anzahl=$_POST['anzahl'];
      debug('Anzahl = '$anzahl);


      #########################

      echo'<u><h1>VT Zeit ändern: </h1></u>';
      debug('+++ vt3 +++<br>');


      //in loc. var. speichern
      for ( $l 0$l $zeilen$l++ ) {//mach es "x" mal
          
      for ( $p 0$p $anzahl$p++ ) {//mach es "x" mal
          
                
      $wert[]=$_POST['neuvektor'.$l.$p];
                  
      #echo'<br>'.$l.$p.' ___  '.$wert[$l];
                  
          
      }    
      }
      //wertearray von der übergabe
      #debug('wert ',print_r($wert));

      #########################

      //statement mit neuer ttnr nocheinmals ausführen und dieses dann eintragen
      $sqlgesamt "select * from liste where ttnr='$wert[1]'";

      //set Statement
        
      $db->set_statement($sqlgesamt); 
              
      //get Statement
        
      $stat=$db->get_it('statement');       
                  
      //sql-Statement an DB senden
        
      $db->execute_statement();
            
      //tabelle mit überschriften ausgeben
         
      $kez=$db->get_feldnamen($results);
          
      #print_r($kez);
              
      #########################    
      //anstatt das ausgelesene datum $wert[0], soll das heutige datum eingetragen werden
      $date date("d.m.Y");
      echo
      '<br>Aktuelles Datum wird nun verwendet = '.$date;
      echo
      '<br>';
      #########################        
              
      //jetzt eintragen /kez und wert arrays verwenden
      //upgedatet wird, wo je nach eingegebener ttnr!!

      $sqlgesamt "update liste  set $kez[0]='$date', $kez[1]='$wert[1]', 
      $kez[2]='$wert[2]', $kez[3]='$wert[3]' where ttnr='$wert[1]'";

      //set Statement
        
      $db->set_statement($sqlgesamt);      
                  
      //sql-Statement an DB senden
        
      $db->execute_statement();    
            
      #########################
            
      //zur kontrolle neuen eintrag ausgeben
      $sqlgesamt "select * from liste where ttnr='$wert[1]'";

      //set Statement
        
      $db->set_statement($sqlgesamt);       
                  
      //sql-Statement an DB senden
        
      $db->execute_statement();            

      perfect($kez,$db->get_it('zeilen'),$db->get_it('spalten'),$db->get_it('results'));

      echo
      '</body>';
      echo
      '</html>';
      ?>
      Zuletzt geändert von blunaluder; 13.01.2006, 10:17.
      www.flyer4fun.de

      Kommentar


      • #4
        Die Folge set_statement(), execute_statement() erscheint mir logisch, aber an einer Stelle hast du ein get_it() dazwischen. Was soll das bewirken?
        Kann es sein, dass du hier Ergebniss lesen möchtest, ohne zuvor die Query ausgeführt zu haben (execute_statement())?

        Kommentar


        • #5
          nein das get it, gibt nur das statement zurück aus der klasse.
          mit dieser funtion kann ich das statement zur kontrolle ausgeben und schauen ob es richtig in der klasse angekommen ist.

          aber, da ich dies auch bei dem execute ausgebe, ist dies eigentlich überflüssig und kann rauskommentiert werden.

          $results sind dann meine ergebnisse.

          brauchst du noch etwas code meiner classe?
          www.flyer4fun.de

          Kommentar


          • #6
            Naja scheint mir eher so, als solltest du deine DB-Klasse noch mal gründlich überarbeiten.

            PHP-Code:
            //sql-Statement an DB senden
            $db->execute_statement();
                  
            //tabelle mit überschriften ausgeben
            $kez=$db->get_feldnamen($results); 
            Woher kommt hier $results?

            Kommentar


            • #7
              hm.. bin nochnicht so wach

              also das $results ist überflüssig, ist ja in der klasse vorhanden..
              ich denke ich habe dies bei der letzten änderung übersehen hier abzuändern

              übrigens liest dies nur die tabellenüberschriften aus, und gibt dies nicht aus.
              Zuletzt geändert von blunaluder; 13.01.2006, 10:55.
              www.flyer4fun.de

              Kommentar

              Lädt...
              X