加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 如何检查数据库查询是否会返回结果?

发布时间:2020-12-15 23:35:53 所属栏目:大数据 来源:网络整理
导读:我们的网站使用Perl为人力资源人员提供了一个简单的机制,可以将空缺发布到我们的网站.它是由第三方开发的,但是它们很久以来就被触碰了,遗憾的是我们内部没有任何Perl技能.当营销人员规避他们的内部IT团队时,就会发生这种情况! 我需要对此应用程序进行简单的
我们的网站使用Perl为人力资源人员提供了一个简单的机制,可以将空缺发布到我们的网站.它是由第三方开发的,但是它们很久以来就被触碰了,遗憾的是我们内部没有任何Perl技能.当营销人员规避他们的内部IT团队时,就会发生这种情况!

我需要对此应用程序进行简单的更改.目前,职位空缺页面上写着“我们目前有以下职位空缺:”,无论是否有职位空缺!因此我们想要更改它,以便仅在适当的时间显示此行.

显然,我可以开始学习一点Perl,但我们已经在计划一个替换站点,它肯定不会使用Perl.因此,对于具有这些技能的人来说,解决方案将是微不足道的,我想我会要求一些有针对性的帮助.

以下是列出职位空缺的程序的开始.

sub list {
  require HTTP::Date;
  import HTTP::Date;

  my $date = [split /s+/,HTTP::Date::time2iso(time())]->[0];

  my $dbh = DBI->connect($dsn,$user,$password)
    || die "cannot connect to $database: $!n";

  my $sql = <<EOSQL;
SELECT * FROM $table where expiry >= '$date' order by expiry
EOSQL

  my $sth = $dbh->prepare($sql);
  $sth->execute();


  while (my $ref = $sth->fetchrow_hashref()) {
    my $temp  = $template;
    $temp     =~ s#__TITLE__#$ref->{'title'}#;

    my $job_spec = $ref->{'job_spec'};

...etc...

关键是while(我的$ref = $sth-> fetchrow_hashref()){.我想这是在说“我可以从退回的记录集中取出另一个空位……”.如果我在此行之前放置我的print语句,它将始终显示;在这条线之后,每个空缺都会重复.

如何确定是否有一些空缺要显示,而不会过早地移动返回的记录集?

我总是可以在while循环中复制代码,并将它放在if()语句中(在while循环之前),它也包含我的print语句.但我更喜欢只有简单的方法如果有任何记录然后打印“我们当前有…”行.不幸的是,即使这个简单的行,我也没有线索.

看,我告诉你这是一个微不足道的问题,即使考虑到我的错误解释!

TIA

克里斯

解决方法

一个非常简单的方法是:

$sth->execute();

my $first = 1;
while (my $ref = $sth->fetchrow_hashref()) {
    if( $first ) {
        print "We currently have the following vacancies:n";
        $first = 0;
    }
    my $temp  = $template;
    ...
}
if( $first ) {
    print "No vacancies foundn";
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读