MySQL-Abfrage gibt nur eine Zeile zurück: Debugging und Lösung
Bei der Arbeit mit MySQL kann es vorkommen, dass ein PHP-Skript nur eine einzelne Zeile abruft kann verwirrend sein. Dieses Problem tritt auf, wenn die Abfrage selbst gültig ist, aber die Implementierung des Skripts verhindert, dass alle erwarteten Zeilen abgerufen werden.
Fehlerbehebung des Problems
Beachten Sie den bereitgestellten PHP-Code, der führt eine Abfrage aus, um Zeilen aus der Fastsearch-Tabelle abzurufen:
$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"); $query2 = mysql_fetch_assoc($quer); print_r($query2);
Obwohl die SQL-Abfrage mehrere Zeilen zurückgibt, Das Skript zeigt nur eine Zeile. Dieses Verhalten tritt auf, weil mysql_fetch_assoc() standardmäßig nur eine einzelne Zeile abruft. Um alle Zeilen abzurufen, müssen wir sie mithilfe einer Schleife durchlaufen.
Lösung: Verwendung einer while-Schleife zum Abrufen mehrerer Zeilen
Der korrigierte Codeausschnitt würde a verwenden while-Schleife, um die Abfrageergebnisse zu durchlaufen und jede Zeile zu drucken:
$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"); while ($row = mysql_fetch_assoc($query)) { print_r($row); }
In diesem aktualisierten Code mysql_fetch_assoc() wird innerhalb der Schleife aufgerufen und der Variablen $row wird die aktuelle Zeile zugewiesen. Dadurch kann die Schleife jede Zeile in den Abfrageergebnissen durchlaufen und so alle Zeilen drucken.
Das obige ist der detaillierte Inhalt vonWarum gibt meine MySQL-Abfrage in PHP nur eine Zeile zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!