如何在PHP $ row->中使用变量?从db表?

时间:2010-08-20 10:29:13

标签: php

我在PostgreSQL数据库表中有几个字段,我想在PHP循环中访问它,因为我希望每个字段都发生相同的事情。

它们的名称相似(3个小写字母),例如“mor”,“gls”等,各种名称存储在名为$ fields的数组中。

我正在使用的代码的核心如下(我正在从表中检索每一行,然后尝试遍历这些字段):

$sql="select * from mytable order by id";
$result=pg_query($db_handle,$sql);
while ($row=pg_fetch_object($result))
{
  foreach ($fields as $field)
  {
    $myfield=$row->$field;
    <do something with $myfield>
  }
}

不幸的是,$ row-&gt; $字段不起作用。我得到以下内容:

PHP Notice:  Undefined property: stdClass::$mor
PHP Notice:  Undefined property: stdClass::$gls

我尝试了各种括号和引号的排列,但我似乎无法找到魔法尘埃。这可行吗?

感谢。

4 个答案:

答案 0 :(得分:2)

为什么不用pg_fetch_assoc而不是对象来获取数组,所以你可以这样做;

$myfield=$row[$field];

答案 1 :(得分:1)

var_dump( $row );

并检查$row是否符合预期。

答案 2 :(得分:1)

尝试$myfield=$row->{$field}

答案 3 :(得分:0)

您应该遍历该行,它会为您提供列名(键)及其值(值)

你不能遍历$ fields,因为它不存在。

$sql="select * from mytable order by id";
$result=pg_query($db_handle,$sql);
while ($row=pg_fetch_object($result))
{
  foreach ($row as $key => $value)
  {
    $myfield=$value;
    <do something with $myfield>
  }
}