我是php的新手,我试图通过表内的foreach循环显示stdClass对象数据。但它没有用。
@Stateless
@Interceptors(CustomSpringBeanAutowiringInterceptor.class)
@LocalBean
public class SomeClass {
@Inject
private EJBClass a;
@Autowired
private SpringComponent b;
}
数据打印
include("../config.php");
$get_data = $conn->query("SELECT * FROM `prd_rgistration`");
$prd_data = $get_data->fetchObject();
print_r($prd_data);
Foreach Loop
stdClass Object
(
[id] => 24
[password_db] => kignkgsnis
[country_db] => United States
[porder_db] => 56313241654321324
[email_db] => nisa@gmail.com
)
它发出此错误
尝试获取非对象的属性
请告诉我如何显示数据。我做错了什么。
答案 0 :(得分:3)
你只获得一个对象,而不是一个数组,所以将while循环包装在fetch
while ($prd_data = $get_data->fetchObject())
echo $prd_data->id;
答案 1 :(得分:2)
在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;
}
答案 2 :(得分: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还建议了另一种方式
答案 3 :(得分:0)
您需要循环查询结果:
while ($prd_data = $get_data->fetchObject()) {
echo $prd_data->id;
}
而不是
$prd_data = $get_data->fetchObject();