我正在尝试获取表中的所有行并返回结果:
try{
$sql = "SELECT * FROM table WHERE status = $this->status ORDER BY id";
$stmt = $conn->prepare( $sql );
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
return $result;
closeConnection();
} catch (PDOException $e) {
echo $e->getMessage();
}
然后将数组发送到索引:
foreach($result as $row) {
print_r($row);
}
它只显示1个项目,而不是表格中的所有项目?
答案 0 :(得分:1)
它只显示1个项目,而不是表格中的所有项目?
From the PHP manual on PDOStatement::fetch
从与PDOStatement对象关联的结果集中获取 a 行。 fetch_style参数确定PDO如何返回行。
正如您所看到的,fetch被记录为返回单行。您需要迭代整个结果集。
$results = array();
if ($stmt->execute()) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
array_push($results, $row);
}
}
// you should call closeConnection() here but
// but closing PDO connections does not have to be done explicitly
return $results;
答案 1 :(得分:0)
使用fetchAll
代替fetch
来获取所有行