在 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]... ]
在这种情况下,$row[1] 在后续迭代中将不存在,从而导致问题。
以上是为什么我只访问 MySQLi 结果集中的第一个值?的详细内容。更多信息请关注PHP中文网其他相关文章!