如何访问 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 访问该行中的元素。但是,后续的每一行都会有不同的索引,从而导致不正确的结果。
解决方案
迭代结果集有多种解决方案:
逐一获取:
使用 fetch_array() 一次获取一行,相应地调整索引:
while ($row = $output->fetch_array()) { echo $row['uid']; }
使用 MySQLI 的迭代器:
MySQLi 的 query() 方法可以用作可迭代对象,允许您按如下方式迭代结果:
foreach ($output as $row) { echo $row['uid']; }
注意:
您可以使用 MYSQLI_ASSOC 获取关联数组或 MYSQLI_NUM 获取索引数组作为结果集。
最佳实践
建议使用 MySQLi 的面向对象语法,因为它可以简化代码。此外,考虑迭代中行的索引以正确访问值也很重要。
以上是如何访问 MySQLi 结果集中的所有结果而不仅仅是第一个结果?的详细内容。更多信息请关注PHP中文网其他相关文章!