我认为这样做会更容易,但我想尝试更好的编码实践,并且我一直听到这一点,虽然不是循环结果的好方法,所以现在我来了试图切换,我以为我把它弄下来,但没有骰子。我原来的代码就是
public function GetSiteName() {
$query = <<<SQL
SELECT site_name
FROM site_details
SQL;
$resource = $this->db->prepare( $query );
$resource->execute();
while($row = $resource->fetch(PDO::FETCH_ASSOC)){
echo $row['site_name'];
}
}
因此我尝试将其更改为foreach循环,并且我已经使用mysql扩展获得了大约一百万种不同的方法。 (我相当肯定99%的人会说使用while循环比去mysql和使用不推荐的函数更好) 相反,我尝试的不是
public function GetSiteName(){
$query = <<<SQL
SELECT site_name
FROM site_details
SQL;
$resource = $this->db->prepare( $query );
$resource->execute();
$result = $resource->fetch(PDO::FETCH_ASSOC);
foreach($result as $detail){
echo $detail->site_name;
}
}
我不确定我在这里做错了什么,第一个效果很好,但第二个给了我:
Notice: Trying to get property of non-object in C:\xampp\htdocs\functions.d\db.class.php on line 37
但是,如果我尝试运行print_r($result);
,我会
Array ( [site_name] => Doxramos )
我认为我可以提供尽可能多的细节,但我觉得我做的一切都是正确的,但通知并不是谎言。我只是不确定它是如何说第37行试图在我明显拉动阵列时试图获得非物体。
答案 0 :(得分:1)
你正在尝试echo
一个对象,而$detail
是一个数组。改为
echo $detail->site_name;
要:
echo $detail['site_name'];