如何使用PDO::FETCH_OBJ将查询结果存储到一个数组中?[重复]

问题描述 投票:-1回答:1

如何将查询结果存储到一个数组中?例如,下面的代码会产生这个错误。

Fatal error: Fatal error: Uncaught Error: Cannot use object of type stdClass as array in C:\XAMPP\htdocs\php_test/test.php:50 Stack trace: #0 {main}在C:\XAMPP\htdocs\php_test/test.php第50行被丢弃。

const PATH_TO_SQLITE_FILE = 'my_db.sqlite';

$pdo = new \PDO("sqlite:" . PATH_TO_SQLITE_FILE);

$queryy = $pdo->query('SELECT Title, Format '
                . 'FROM Objects');


$arr = [];

        while ($row = $queryy->fetch(\PDO::FETCH_OBJ)) {
            $arr[] = [
                'Title' => $row['Title'], // Error occurs here. 
                'Format' => $row['Format']
            ];

        }

//echo $arr[1]->Title;

我被这个问题卡了一上午,在谷歌上也没找到解决方法。希望有人能指出我不明白的地方。

php sqlite pdo
1个回答
0
投票

你正在获取一个对象,然后试图将其作为一个数组来访问。 要么获取一个数组 PDO::FETCH_ASSOC 或访问对象 $row->Title.

然而,你的代码可以最小化到这一点。

$queryy = $pdo->query('SELECT Title, Format FROM Objects');

$arr = $queryy->fetchAll(PDO::FETCH_ASSOC);
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.