foreach不能在php中使用pdo

时间:2014-02-12 17:59:48

标签: php loops pdo foreach

我在我的PHP项目中使用PDO,我不知道为什么这不起作用。它没有显示任何错误。

我有一个从数据库中读取数据的功能:

function Read_post($con,$table,$limit=6){

    try {
        $query = "SELECT * FROM {$table} ORDER BY  id DESC LIMIT {$limit}";
        $stmt = $con->prepare( $query );
        $stmt->execute();
        return $stmt->fetch(PDO::FETCH_ASSOC);
    } catch (Exception $e) {
        return "ERROR". $e->getMessage();
    }

}

我使用foreach循环来显示数据。但它没有显示任何内容:

<?php $posts = Read_post($con,"posts"); ?>

<?php foreach ($posts as $key) {
    echo "something ";
    echo $key["title"];
} ?>

它没有显示其他文本,如果我只回显其他文本。

2 个答案:

答案 0 :(得分:1)

在你的函数Read_post中,你有这一行:

return $stmt->fetch(PDO::FETCH_ASSOC);

它不会返回数组,它将返回一个PDO对象。您不能以与数组相同的方式迭代PDO对象。试试这个:

$result = $stmt->fetch(PDO::FETCH_ASSOC);
return $result;

答案 1 :(得分:0)

回显$valueforeach中数组的var_dump($post)来检查包含的数组

某事

<?php foreach ($posts as $value) {
        echo "something ";
        echo $value;
    } ?>