„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum gibt meine MySQLi-Abfrage nur eine Zeile zurück, wenn ich mehrere erwarte?

Warum gibt meine MySQLi-Abfrage nur eine Zeile zurück, wenn ich mehrere erwarte?

Veröffentlicht am 18.11.2024
Durchsuche:454

Why is My MySQLi Query Only Returning One Row When I Expect Multiple?

Identifizieren der Grundursache dafür, dass eine MySQLi-Abfrage nur eine Zeile abruft

Wenn Sie mit dem Problem konfrontiert sind, dass eine MySQLi-Abfrage nur eine Zeile zurückgibt, obwohl mehrere Zeilen erwartet werden , ist es wichtig, den beteiligten Code zu untersuchen. Im bereitgestellten Fall zielt die Abfrage darauf ab, Daten aus den Tabellen „sb_buddies“ und „sb_users“ abzurufen.

Der Code wählt Spalten aus beiden Tabellen aus und verknüpft sie basierend auf dem Feld „buddy_requester_id“. Die folgende Zeile versucht jedoch, mit $request_list_result->fetch_array() nur eine einzelne Zeile abzurufen.

Lösung: Verwenden von fetch_all() zum Abrufen mehrerer Zeilen

An Um mehrere Zeilen abzurufen, muss die Methode fetch_all() verwendet werden:

$request_list_result = $mysqli->query("
SELECT buddy_requester_id, buddy_reciepient_id, user_id, user_fullname FROM sb_buddies
JOIN sb_users ON buddy_requester_id=user_id
WHERE buddy_status='0' AND buddy_reciepient_id='". get_uid() ."'");

$request_list_rows = $request_list_result->fetch_all();

echo $request_list_rows[0]['user_fullname'];

Erklärung des Unterschieds

  • fetch_array() gibt eine einzelne Zeile als assoziatives Array zurück, wobei die Spalte „wobei“ ist Namen dienen als Schlüssel.
  • fetch_all() gibt alle Zeilen als assoziatives Array zurück Arrays, die jeweils eine einzelne Zeile darstellen.

Durch die Verwendung von fetch_all() kann der Code nun auf die Daten für alle übereinstimmenden Zeilen zugreifen, wodurch das Problem gelöst wird, nur eine Zeile zu erhalten.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3