首页 > 解决方案 > PHP fetch_assoc 循环

问题描述

我的查询选择了所有符合特定条件的行,但是在为此使用 fetch_assoc 时遇到了问题,我只得到一行。

这是我的代码:

$stmt = $conn->prepare("SELECT filename, comment, action FROM files WHERE belongsto = ?");
$stmt->bind_param("s", $_POST['case_identifer']);
$stmt->execute();
$result = $stmt->get_result();
echo json_encode(array(($result->fetch_assoc())));
$stmt->close();
$conn->close();

我需要将 fetch_assoc 函数变成一个循环,以便在 JSON 中获得所有结果,但我非常不确定如何执行此操作,希望有任何帮助或提示。

标签: phpmysqlprepared-statement

解决方案


只需使用while循环将行写入数组,然后对其进行json_encode。所以替换这一行:

echo json_encode(array(($result->fetch_assoc())));

用这个循环:

$output = array();
while ($row = $result->fetch_assoc()) {
    $output[] = $row;
}
echo json_encode($output);

推荐阅读