DBD::mysql::st fetchrow failed: fetch() without execute()

Diskutiere DBD::mysql::st fetchrow failed: fetch() without execute() im SQL und Datenbanken Forum im Bereich Netzwerke & Serverdienste; Hey Leute, habe folgenden Fehler bei dem Zugriff auf eine MYSQL Datenbank in einem Perl-Skript: DBD::mysql::st fetchrow failed: fetch() without...

  1. #1 aktivfrühstück, 24.01.2008
    Zuletzt bearbeitet: 25.01.2008
    aktivfrühstück

    aktivfrühstück Eroberer

    Dabei seit:
    19.03.2007
    Beiträge:
    66
    Zustimmungen:
    0
    Hey Leute,

    habe folgenden Fehler bei dem Zugriff auf eine MYSQL Datenbank in einem Perl-Skript:


    DBD::mysql::st fetchrow failed: fetch() without execute() at /opt/apache/cgi-bin/ranking_ausgabe.pl line 445.



    Zur Errinnerung:

    Code:
    $query = "SELECT distinct ... ORDER BY urteil DESC";
    		$sts = $mysql_dbh->prepare($query);
    
    		if (!defined($sts))
    		{
    			
    		}
    
    		if (!$sts->execute)
    		{
    			
    			ende();
    		}
    
    		if($sts)
    		{
    			while(@data = $sts->fetchrow)
    			{
    				if($anzahl_eintraege>0)
    				{
                                     .....
                                    }
                            }
                    }
    
    so in etwa sieht das ganze aus, wo die Fehlermeldung angepriessen wird.

    So jetzt könnte man sagen, wer Englisch kann ist klar im Vorteil:)
    aber:
    komischerweise funktioniert das Programm so wie es soll, die Daten werden mit dem query aus der Datenbank geholt und korrekt verabreitet... dennoch kommt beim Start dieses Programms immer diese Fehlermeldung... Und die if- Schleife mit Sprung zu ende(); wird auch nicht ausgeführt...

    Die Syntax passt... Hatte schonmal jemand selbiges Problem???(


    Grüße an alle!8)
     
  2. #2 Wolfgang, 24.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Sorry, aber aus diesem Schnipsel lässt sich kein Rückschluß ziehen.
    Da muss schon ein wenig mehr kommen.
    Z.B. die Zeilenzahl der vermeindlichen Fehlerstelle.
    oder der Teil wo execute ausgeführt wird.
    Oder ob das Script mit warnings und strict läuft.

    Das möglichst in [code] Tags.

    Hellsehen kann hier keiner.
     
  3. #3 aktivfrühstück, 25.01.2008
    Zuletzt bearbeitet: 25.01.2008
    aktivfrühstück

    aktivfrühstück Eroberer

    Dabei seit:
    19.03.2007
    Beiträge:
    66
    Zustimmungen:
    0
    Hey, Hellsehen soll hier auch keiner, auch wenns toll wäre:)

    Das Skript läuft mit strict, nicht mit warnings.

    Die Zeilennumer des Fehlers wird immer bei folgender Zeile angegeben:

    Code:
    while(@data = $sts->fetchrow)
    
    Was meinst du mit dem Teil wo execute ausgeführt wird?
     
  4. #4 Wolfgang, 25.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Dann ordne das mal in die richtige logische Reihenfolge:
    Code:
    $query = "SELECT distinct ... ORDER BY urteil DESC";
    		$sts = $mysql_dbh->prepare($query);
    
    		if($sts->execute)
    		{
    			while(@data = $sts->fetchrow)
    			{
    				if($anzahl_eintraege>0)
    				{
                                     .....
                                    }
                            }
                    }
                     else
    ## hier die Fehlerabfragen.
    
     
Thema:

DBD::mysql::st fetchrow failed: fetch() without execute()