如何在foreach循环中显示来自PDO的数据
Posted
技术标签:
【中文标题】如何在foreach循环中显示来自PDO的数据【英文标题】:how to display data from PDO in foreach loop 【发布时间】:2016-10-22 23:54:10 【问题描述】:我是 php 新手,我正在尝试通过表内的 foreach 循环显示 stdClass 对象数据。但它不起作用。
include("../config.php");
$get_data = $conn->query("SELECT * FROM `prd_rgistration`");
$prd_data = $get_data->fetchObject();
print_r($prd_data);
数据打印
stdClass Object
(
[id] => 24
[password_db] => kignkgsnis
[country_db] => United States
[porder_db] => 56313241654321324
[email_db] => nisa@gmail.com
)
Foreach 循环
foreach($prd_data as $eprd_data)
echo $eprd_data->id;
它给出了这个错误
试图获取非对象的属性
请告诉我如何显示数据。我做错了什么。
【问题讨论】:
您只获取一个对象。所以你不能循环它。 使用$get_data->fetchAll(PDO::FETCH_OBJ);
然后使用 foreach 循环
哦,我知道它现在工作正常
【参考方案1】:
有两种方法:-
1.bit 修改你的代码:-
遍历查询结果:-
while ($prd_data = $get_data->fetchObject())
echo $prd_data->id;
2.使用$prd_data = $get_data->fetchAll(PDO::FETCH_OBJ);
,然后使用foreach
。
foreach($prd_data as $eprd_data)
echo $eprd_data->id;
注意:- 据我说你有兴趣获取所有记录,所以去第二个。谢谢
@Your common Sense 还建议了另一种方法
【讨论】:
【参考方案2】:你需要遍历查询的结果:
while ($prd_data = $get_data->fetchObject())
echo $prd_data->id;
代替
$prd_data = $get_data->fetchObject();
【讨论】:
错字:$eprd_data
现在不存在【参考方案3】:
将此行添加到您的config.php
$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
将代码更改为
$get_data = $conn->query("SELECT * FROM `prd_rgistration`");
foreach($get_data as $prd_data)
echo $prd_data->id;
【讨论】:
【参考方案4】:你只得到一个对象,而不是一个数组,所以将 while 循环包裹在 fetch 周围
while ($prd_data = $get_data->fetchObject())
echo $prd_data->id;
【讨论】:
以上是关于如何在foreach循环中显示来自PDO的数据的主要内容,如果未能解决你的问题,请参考以下文章
PDO::bindParam 在 foreach 循环中,所有值都设置为相同吗?