PHP Bug !

Christian Fein

Erfahrenes Mitglied
Code:
while($r=mysql_fetch_array(mysql_query($sql))
{}

// ergibt endlosschleife

$q = mysql_query($sql);
while($r=mysql_fetch_array($q))
{}

// korrekte ausführung

<- etwas entäuscht
 
Nix Denkfehler? Und wie... bei deinem ersten Aufruf wird IMHO jedes Mal eine neue Datenbankabfrage durchgeführt :rolleyes:
 
[edit]
Mist, zu langsam getippt ;)
Ich lass es trotzdem mal stehen, falls wer ne ausführlichere Beschreibung lesen will ;)
[/edit]

@Woddi: Genau :)

Ablauf:

1. Führe MySQL-Query aus, speichere Resource ID zwischen (ist übrigens nicht vom Datentyp integer @HolyFly)
2. Hole erste Zeile des Ergebnisses, das mit der Resource ID identifiziert wird, und gebe es als Array zurück. Wenn keine Zeile im Ergebnis vorliegt, gib false zurück
3. Wenn nicht false zurückgegeben wurde, fange von vorne an.

Bei jedem Durchlauf wird erneut die Abfrage durchgeführt, und damit auch jedesmal eine neue Resource ID zurückgegeben. Ist nur allzu logisch, dass eine Endlosschleife entsteht, und keinesfalls ein Bug!


reima
 
Zuletzt bearbeitet:
naja ist rückgabe

resource

jedoch erkenn ich resource nicht als nativen datentyp an.

Soviel ich weis wird das im C code intern als int dargestellt wenn nicht waehre es interressant zu erfahren.
Ich bin grad am heftig suchen in den mysql u php headers

damit stimmt das auch mit meiner Referenz im buch überein.
 
Zurück