Perl从PostgreSQL数据库中检索返回undef的值

时间:2014-06-30 18:27:09

标签: perl postgresql

在我的用户首选项页面上,我有一个perl脚本:

my $prefs = USystems::UserPrefs->new($user->userid);

呼吁:

sub new {
    my $self = shift;
    my $class = ref($self) || $self;
    my $userid = shift;

    $self = bless {}, $class;
    $self->{dbh} = USystems::DB->new;

    if($userid) {
        $self->userid($userid);
        $self->__populate;
    }

    return $self;
}

sub __populate {
    my $self = shift;

    my $sth = $self->{dbh}->prepare("select prefid, value from user_preferences where userid=?");
    $sth->execute($self->userid);
    while(my $href = $sth->fetchrow_hashref()) {
        $self->value($href->{PREFID}, $href->{VALUE}, $href->{OTHERS_POST});
    }
    $sth->finish();
}

假设从数据库中的表返回所有用户的当前首选项。

当我转出$prefs时,我得到以下内容:

  'USERID' => 1286,
  'PREFS' => {
          '1' => {
                   'VALUE' => 4,
                   'OTHERS_POST' => undef
                  }
              },

问题是我的$ prefs在undef返回“{1}}时应返回”1“。我希望问题与潜行OTHERS_POSTSnew有关,但我对Perl没有足够的经验来找到问题。

1 个答案:

答案 0 :(得分:0)

你不是选择OTHERS_POST作为专栏,不是吗?它不能是未定义的任何东西。