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

  • Ersteller aktivfrühstück
  • Erstellt am
A

aktivfrühstück

Eroberer
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)
 
Zuletzt bearbeitet:
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.
 
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?
 
Zuletzt bearbeitet:
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.
 

Ähnliche Themen

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Mysql connect Problem

Zurück
Oben