首頁 >後端開發 >php教程 >如何存取 MySQLi 結果集中的所有結果而不僅僅是第一個結果?

如何存取 MySQLi 結果集中的所有結果而不僅僅是第一個結果?

Barbara Streisand
Barbara Streisand原創
2024-11-16 19:02:03721瀏覽

How do I access all results in a MySQLi result set instead of just the first one?

如何存取 MySQLi 結果集中的結果

您的查詢:

select uid from userbase 

您的循環:

$i = 0;
$output = mysqli_query($mysqli, "select uid from userbase");
while ($row = $output->fetch_array()) {
    $deviceToken = $row[$i];
    echo $deviceToken;
    $i++;
}

問題

您只取得第一個值,因為fetch_array() 從結果集中檢索單行,並且您使用索引$ i 存取該行中的元素。但是,後續的每一行都會有不同的索引,導致不正確的結果。

迭代結果集有多種解:

  • 逐一取得:

    逐一取得:
    while ($row = $output->fetch_array()) {
        echo $row['uid'];
    }
  • 使用fetch_array()一次取得一行,相應調整索引:

    使用MySQLI 的迭代器:
    foreach ($output as $row) {
        echo $row['uid'];
    }
MySQLi 的query() 方法可以用作可迭代對象,允許您如下迭代結果:

注意:

您可以使用 MYSQLI_ASSOC 取得關聯數組或 MYSQLI_NUM 取得索引數組作為結果集。

最佳實踐建議使用 MySQLi 的物件導向語法,因為它可以簡化程式碼。此外,考慮迭代中行的索引以正確存取值也很重要。

以上是如何存取 MySQLi 結果集中的所有結果而不僅僅是第一個結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn