Ich muss etwas älteren PHP-Code debuggen und ich habe einen echten Puzzlespieler getroffen.Warum würde mysqli_fetch_assoc ein leeres Objekt zurückgeben?
Eine Methode durchläuft jede Zeile einer MySQL-Tabelle und fügt die Zeile zu einem Array hinzu.
Leider gibt die Methode ein vollständig leeres Objekt zurück, sodass die HTTP-Antwort keine Länge hat. Es scheint, dass eine bestimmte Zeile in der MySQL-Tabelle dieses Problem verursacht, wenn mysqli_fetch_assoc
aufgerufen wird. Ich habe es auf Zeile 1251 eingegrenzt, indem ich den Testcode unten hinzugefügt habe.
$counter = 0
while ($row = mysqli_fetch_assoc($findInfo)) {
// My Debug Test Code: bail out and return row 1251
if ($counter == 1251)
return $row; // this returns a populated array for all rows except 1251, which is blank
// Add the row to our array
array_push($rowArray, $row);
$counter = $counter + 1
}
// Finally, do something with all the rows
return $rowArray
Wenn ich einen CSV-Dump der Datentabelle erzeugen, sehen die Daten ziemlich harmlos - Reihe 1251 die Leitung 94340
im Snippet unten beginnen:
94339,"Hills Coaches (Wolverhampton)",,,,,,,,,,,,,,,,
94340,"Hinckley Bus",,"via contact form at www.arrivabus.co.uk/contact-arriva/ ","01455 239329",,,"5 Jacknell Road, Dodwells Bridge Industrial Estate, Hinckley LE10 3BS",,,,,,,,,,www.arrivabus.co.uk/hinckleybus/#http://www.arrivabus.co.uk/hinckleybus/#
94341,Hirethisbus.com,,,,,,,,,,,,,,,,
Was mysqli_fetch_assoc
verursachen könnte scheinbar auf diese Weise "aussteigen" und nichts zurückgeben? Wie würde ich das überhaupt debuggen?
Was genau ist in $ Zeile auf diesem Datensatz? – Quassnoi
Es kann nicht verwandt sein, aber Ihre Zeile '94340' sieht aus wie es irgendwo ein paar Anführungszeichen vermisst. Kannst du 'print_r ($ row)' für '1251' noch posten und die Ergebnisse posten? – Ben