在MySQLi 中迭代結果集
在MySQLi 中處理結果集時,您可能會遇到只能存取第一個值的問題迭代期間。這通常是由於使用 fetch_array() 以及對其行為理解不當造成的。
fetch_array() 的預設行為
預設情況下,fetch_array() 傳回一個具有下列兩種情況的陣列:索引鍵和關聯鍵,稱為MYSQLI_BOTH 。若要指定僅包含索引鍵或關聯鍵的結果集,請分別使用 MYSQLI_NUM 或 MYSQLI_ASSOC。
fetch_array() 的替代方案
而不是依賴fetch_array(),考慮更有效率、簡潔的替代方案:
while ($row = $output->fetch_array(MYSQLI_ASSOC)) { echo $row['uid']; }
while ($row = $output->fetch_array(MYSQLI_NUM)) { echo $row[0]; }
foreach ($output as $row) { echo $row['uid']; }
迭代故障排除
使用$i 透過索引鍵遞增不是
[ 0 => [0 => 1, 'uid' => 1], 1 => [0 => 2, 'uid' => 2], 2 => [0 => 3, 'uid' => 3]... ]
使用$i 透過索引鍵遞增不是
使用$i 透過索引鍵遞增不是使用$i 透過索引鍵遞增不是使用$i 透過索引鍵遞增不是使用$i 透過索引鍵遞增不是適用於具有關聯鍵的結果集。例如,結果集可能具有以下結構的值:在這種情況下,$row[1] 在後續迭代中將不存在,從而導致問題。以上是為什麼我只存取 MySQLi 結果集中的第一個值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!