如何创建表中所有项的数组

时间:2014-11-16 18:48:26

标签: php pdo fetch

我正在尝试获取表中的所有行并返回结果:

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个项目,而不是表格中的所有项目?

2 个答案:

答案 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来获取所有行