foreach不在使用pdo的php中工作

foreach不在使用pdo的php中工作,php,loops,pdo,foreach,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->exe

我在我的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"];
} ?>


它不会显示其他文本,就像我只回显其他文本一样。

foreach
var\u dump($post)
中回显数组的
$value
,以检查数组是否包含

某物

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

在函数Read\u post中,您有以下行:

return $stmt->fetch(PDO::FETCH_ASSOC);
它不会返回数组,而是返回一个PDO对象。不能以与数组相同的方式迭代PDO对象。试试这个:

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

你试过调试这个吗?我假设
$posts
只是空的。。。因此,为什么foreach从未正确执行我的think toecho查询并直接在phpmyadmin
echo[“title”]中运行它与数组值无关<代码>回显$key[“title”]
可能要查看错误您实际上需要:1)在PDO中启用异常2)打印
Read\u post
var\u dump($value)
的返回值可能更合适,因为它可能是数组或对象本身。它没有显示任何内容它现在显示此错误(!)警告:为foreach()提供的参数无效在第50行的C:\wamp\www\Bootstrap\admin\manage_post.php中,就在foreach($posts as$key)行之前,尝试以下操作:echo'posts='。print_r($posts)。
;查看查询是否实际返回任何数据,或者是否有空集。