我有PHP代码可查询mySQL数据库并以对象数组的形式返回一些正确的信息。
但是,应该有多个结果,数据库中有几行与查询匹配。
我尝试过使用while循环,其中嵌套有一个foreach,但我无法使其正常工作。
$stmt = $conn->prepare("SELECT * FROM planning WHERE intervenant = :id AND date = :date");
$result = $stmt->execute([':id' => $id, ':date' => $date]);
if ($stmt->rowCount() > 0) {
$output = array();
$output = $stmt->fetch(PDO::FETCH_ASSOC);
echo json_encode($output);
} else {
$errors = "No data found for this date";
echo json_encode($errors);
}
WHILE LOOP THAT I TRIED TO USE WITHIN IF PART OF CODE ABOVE
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
foreach ($row as $key => $output) {
echo json_encode($output);
}
所以我希望代码返回几个数组,每个数组包含查询的数据。
使用有效的代码,我只会返回一个对象数组。
尝试while循环,我得到“未捕获的错误:在布尔值上调用成员函数fetch()”。
请帮助我们。
答案 0 :(得分:1)
代替:
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
foreach ($row as $key => $output) {
echo json_encode($output);
}
尝试:
$output = $result->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($output)