我在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
我尝试了各种括号和引号的排列,但我似乎无法找到魔法尘埃。这可行吗?
感谢。
答案 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>
}
}