So greifen Sie auf Ergebnisse in einem MySQLi-Ergebnissatz zu
Ihre Abfrage:
select uid from userbase
Ihre Schleife:
$i = 0; $output = mysqli_query($mysqli, "select uid from userbase"); while ($row = $output->fetch_array()) { $deviceToken = $row[$i]; echo $deviceToken; $i++; }
Die Problem
Sie erhalten nur den ersten Wert, weil fetch_array() eine einzelne Zeile aus der Ergebnismenge abruft und Sie den Index $i verwenden, um auf Elemente in dieser Zeile zuzugreifen. Jede nachfolgende Zeile hat jedoch einen anderen Index, was zu falschen Ergebnissen führt.
Lösung
Es gibt mehrere Lösungen, um über die Ergebnismenge zu iterieren:
Eins nach dem anderen abrufen:
Verwenden fetch_array(), um jeweils eine Zeile abzurufen und den Index entsprechend anzupassen:
while ($row = $output->fetch_array()) { echo $row['uid']; }
Verwenden Sie den Iterator von MySQLI:
MySQLis Abfrage( )-Methode kann als iterierbares Objekt verwendet werden, sodass Sie die Ergebnisse als iterieren können folgt:
foreach ($output as $row) { echo $row['uid']; }
Hinweis:
Sie können entweder MYSQLI_ASSOC verwenden, um assoziative Arrays zu erhalten, oder MYSQLI_NUM, um indizierte Arrays als Ergebnismenge zu erhalten .
Am besten Üben
Die Verwendung der objektorientierten Syntax von MySQLi wird empfohlen, da sie den Code rationalisiert. Darüber hinaus ist es wichtig, die Indizes der Zeilen in Ihrer Iteration zu berücksichtigen, um korrekt auf die Werte zuzugreifen.
Das obige ist der detaillierte Inhalt vonWie greife ich auf alle Ergebnisse in einem MySQLi-Ergebnissatz zu und nicht nur auf das erste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!