迭代 MySQLi 結果集
在 PHP 中,可以使用 mysqli_query() 方法來迭代 MySQL 查詢的結果。
要循環遍歷查詢的結果集 select uid from userbase,您可以使用以下循環:
$output = mysqli_query($mysqli, "select uid from userbase"); foreach ($output as $row) { echo $row['uid']; }
此循環將正確取得並顯示結果集中每一行的 uid 值。它利用 MySQLi 的物件導向語法,比過程式語法更簡潔、更有效率。
潛在錯誤
您在程式碼中遇到的錯誤可能是由於使用fetch_array() 以及產生包含索引鍵和關聯鍵(MYSQLI_BOTH) 的結果集的預設行為而導致。若要解決此問題,您可以使用 MYSQLI_ASSOC 或 MYSQLI_NUM 作為 fetch_array() 的第二個參數來指定所需的行為。
或者,您可以透過使用mysqli_query() 作為可迭代物件來完全避免使用fetch_array(),從而消除需要在每次迭代時調用fetch_array() row.
修正迭代
您提供的程式碼也包含不正確的迭代方案。 $i 變數應在循環內遞增,以存取結果集中從索引 0 開始的後續行。
因此,使用 fetch_array() 的正確迭代將是:
$i = 0; $output = mysqli_query($mysqli, "select uid from userbase"); while ($row = $output->fetch_array(MYSQLI_ASSOC)) { echo $row['uid']; $i++; }
以上是如何在 PHP 中有效率地迭代 MySQLi 結果集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!