如何在foreach循环中显示PDO中的数据

时间:2016-06-21 12:22:43

标签: php pdo foreach stdclass

我是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
)

它发出此错误

  

尝试获取非对象的属性

请告诉我如何显示数据。我做错了什么。

4 个答案:

答案 0 :(得分:3)

你只获得一个对象,而不是一个数组,所以将while循环包装在fetch

while ($prd_data = $get_data->fetchObject())
  echo $prd_data->id;

答案 1 :(得分:2)

  1. config.php

    中添加此行
    $conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    
  2. 将代码更改为

    $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();