我试图将整个结果集放入一个数组中,如下所示:
while($myres[]=$result->fetch_array(MYSQLI_ASSOC));
这工作正常,但如果我的结果中有 5 行返回,则数组有 6 个索引,最后一个索引为空。所以看来我的数组总是有一个索引太大。
我可以使用 num_rows 来循环结果,但这需要我设置自己的计数器并递增它,我喜欢上面一行的速记效率,但如何阻止它用空集填充最后一个索引。
这是我使用 fetch_all
的替代方案,我发现它需要一个特殊的驱动程序,并非所有 php 服务器都安装了该驱动程序。
最佳答案
我只会使用多行
$myres = array();
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$myres[] = $row;
但是,如果您必须在没有额外的数组赋值行的情况下拥有它
while ($row = $result->fetch_array(MYSQLI_ASSOC) && $myres[] = $row) {
但这或多或少是相同的。
关于php - 将整个 mysql 结果集转储到数组中的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17307452/