如何将查询结果存储到一个数组中?例如,下面的代码会产生这个错误。
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;
我被这个问题卡了一上午,在谷歌上也没找到解决方法。希望有人能指出我不明白的地方。
你正在获取一个对象,然后试图将其作为一个数组来访问。 要么获取一个数组 PDO::FETCH_ASSOC
或访问对象 $row->Title
.
然而,你的代码可以最小化到这一点。
$queryy = $pdo->query('SELECT Title, Format FROM Objects');
$arr = $queryy->fetchAll(PDO::FETCH_ASSOC);