STATUS_STACK_OVERFLOW Beim Konvertieren meines Codes in objektorientierte PHP [geschlossen]Php

PHP-Programmierer chatten hier
Anonymous
 STATUS_STACK_OVERFLOW Beim Konvertieren meines Codes in objektorientierte PHP [geschlossen]

Post by Anonymous »

Dieses Problem geschieht nur in Chrome/Edge, aber nicht in Firefox, und ich bin wirklich verblüfft.
Ich bin gerade dabei Über aus dem "linearen" PHP -Code in "objektorientierte" PHP -Code. Bis zu diesem Zeitpunkt hat sich alles reibungslos verlagert, aber hier ist die Situation. < /P>
In meinem ursprünglichen Code hatte ich eine PHP Traditionelle Schlaufe durch die SQL -Objekte, um die Daten aus jedem Datensatz zu schnappen und sie mit Tags usw. in einer schönen Ausgabe zu formatieren. So etwas wie dieses vereinfachte Beispiel: < /p>
$sql = "...query syntax...";
$result = conn->query($sql);
while ($row = $result->fetch->object) {
echo "".$row->parameter."" // etc.
}
< /code>
Es war eine ziemlich komplexe Formatierung, funktionierte aber perfekt und konnte Tausende von Datensätzen ohne Schluckauf verarbeiten. Meine Testanfrage zeichnet ungefähr 1 500 Datensätze, aber sie hat mit über 10 000 Datensätzen gearbeitet. und gibt die Formatierung als HTML -Codeblock aus. Ich nenne es so: < /p>
$record = new Record();
$record->load(); // loads the record from the database
$record->draw(); // outputs the final formatted data
< /code>
Dies funktioniert erneut genauso wie erwartet kein Problem. Hier wird es also interessant. Das Rekordobjekt behandelt nur einen einzelnen Datensatz. Daher habe ich ein RecordList -Objekt erstellt, das im Wesentlichen ein Array von Datensatzobjekten ist (mit einer Reihe von Methoden zum Umgang mit Suchvorgängen, unterschiedlichen Abfragen usw.), manchmal ebenso wie ein paar tausend Datensätze. Ich habe eine Methode, die jeweils einen Datensatz aus dem RecordList -Objekt zurückgibt, damit sie so verwendet wird: < /p>
$list = new RecordList();
$list->load(); // loads a bunch of records (also 1500 records)
while($record = $list->get_next_record()) {
$record->draw();
}
< /code>
Wenn ich versuche, diesen Code auszuführen, gibt er bis zu 389 Datensätze aus. Auf dem 390. Aufruf löst der Browser jedoch den Vollbildmodus status_stack_overflow -Fehler aus. Passiert bei Chrome und Edge. Dass ich finden kann. /p>
Ich habe versucht, einen Flush () aufzunehmen; Nach jedem Zeichnen in meinem Rekordobjekt, aber es scheint nicht zu helfen. < /p>
Es ist wahrscheinlich erwähnenswert in eine Methode namens "Draw ()". Ich plane, dies zu aktualisieren, um das gesamte Format in einer Variablen namens $ Output zu erstellen und es dann mit einer einzelnen Echo -Anweisung anzuzeigen, bevor ich die Methode verließ. Ich bin mir nicht sicher, ob dies zumindest teilweise das Problem verursacht, wollte es aber nur für den Fall erwähnen. Es geschieht nur mit meiner objektorientierten Version. Wirklich sicher, wie man vorgeht.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post