将结果集作为数组获取

时间:2017-01-06 07:38:22

标签: php mysql arrays resultset

我有一些这样的功能:

function doLegends($in_result)
{
    global $legend_table;
    while ($temp_row = mysqli_fetch_row($in_result))
    {
        $legend_table[] = $temp_row;
    }
}

他们将每一行逐个添加到PHP数组中。有没有办法将结果集保存为一个数组,而无需单独获取每一行?此外,是否有性能优势?感谢。

[编辑]

这是查询。

SELECT  l.legend_group, l.legend_description
FROM    legends as l
WHERE   l.record_id = in_record_id;

record_id不是唯一键或主键,因此它返回多行。

[编辑]

这是正确的语法吗?

function doLegends($in_result)
{
    global $legend_table;
    $legend_table = mysqli_fetch_array($in_result);
}

我在最后一行收到syntax error, unexpected '}'错误。

[编辑]

好的,语法错误是误报。但是,现在mysqli_fetch_array函数仅返回预期结果的子集。例如,$legend_table应该有6行,但该函数只返回2行。 SQL ID存在差距。由于删除了某些行,因此会跳过某些数字。这会产生影响吗?

[编辑]

以下是我的SQL表的内容:

legend_id,record_id,legend_group,legend_description
896,180,1,"Unit Actions"
897,180,2,Lenses
898,180,4,Multiplayer
899,180,5,Camera
900,180,6,"Game Screens"
901,180,8,"Game Commands"

但是当我用这个计算行数时:

error_log("woot " . count($legend_table));

错误日志仅显示woot 4而不是woot 6

1 个答案:

答案 0 :(得分:2)

您可以使用mysqli_fetch_array以数组格式获取结果,或使用mysqli_fetch_assoc以关联数组格式获取结果

相关问题