这个PDO声明有什么问题? 不能使用PDOStatement类型的对象作为数组

I want to fetch every result from table 'Themes'.

function display_all_themes()
{
    global $pdo;    
    $select = $pdo->prepare("SELECT * FROM themes");
    $select->execute();

    while ($row = $select->fetch(PDO::FETCH_ASSOC))
    {
        echo $select['theme_name'].'<br />';
    }
}

Getting this error:

Fatal error: Cannot use object of type PDOStatement as array in C:\xampp\htdocs\driptone\inc\functions.inc.php on line 137

Line 137:

    echo $select['theme_name'].'<br />';

What is the problem? Thanks.

You're using $select instead of $row inside loop.

while ($row = $select->fetch(PDO::FETCH_ASSOC))    {
    echo $row['theme_name'].'<br />';
}

use $row, except $select

echo $row['theme_name'].'<br />';

You assigned it to $row but you're calling $select.

Should be:

while ($row = $select->fetch(PDO::FETCH_ASSOC))    
{
    echo $row['theme_name'].'<br />';
}