我有一些这样的功能:
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);
}
我在最后一行收到语法错误,意外的'}'
错误。
[编辑]
好的,语法错误是误报。但是,现在 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
。
最佳答案
您可以使用 mysqli_fetch_array 获取数组格式的结果或使用 mysqli_fetch_assoc 获取关联数组格式的结果
关于php - 获取结果集作为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41501113/