php - 如何使用 PDO::FETCH_OBJ 将查询结果存储到数组中?
问题描述
如何将查询结果存储到数组中?例如,以下代码将产生此错误:
致命错误:未捕获的错误:不能在 C:\XAMPP\htdocs\php_test\test.php 中使用 stdClass 类型的对象作为数组:50 堆栈跟踪:#0 {main} 在 C:\XAMPP\htdocs\php_test\test 中抛出。第 50 行的 php
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);
推荐阅读
- angular - Angular:- 在一个组件中定义的值在另一个组件中使用服务
- python - 在 Python 中为 .aspx 网站上的 POST 方法构建数据
- javascript - 重定向低性能电脑
- html - SVG favicon 将不再显示
- python - 在 Jupyter Notebook 中嵌入幻灯片
- python - 基于用户输入实例化对象的 Pythonic 方式
- javascript - 如何将控制器数据传递给 AngularJS 中的自定义指令?
- tensorflow - 确定tensorflow keras LSTM的输入形状?
- php - 使用 php excel 将 html 渲染为 excel
- azure - Azure API 管理器 POST 请求/响应限制 65,535