- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有人可以帮助我解决旧 Perl 代码的令人沮丧的问题。我的实际任务是将旧的 Perl 脚本从版本 5.10.1 迁移到 5.18.2。
所以我已经解决了脚本的简单问题,例如错误的调用、错误的格式等。
但是我被困在一个名为 fetchhash 的函数上,它看起来就像 fetchrow_hashref;
我打算获取 IP、名称服务器 ID 和名称的列表。我的问题是,函数 fetchrow_hashref 不执行与旧代码中的 fetchhash 相同的操作。
请参阅以下新代码:
#fetch_network();
$res2=$dbh->prepare("select nsip,nsid,nsname from nameservers");
$res2->execute();
while (%ns2=$res2->fetchrow_hashref;{
$nsips{$ns2{nsid}}=$ns2{nsip};
$nsnames{$ns2{nsid}}=$ns2{nsname};
}
表格如下所示:
+-----------------+------+------------------------------+
| nsip | nsid | nsname |
+-----------------+------+------------------------------+
| 101.101.111.10 | 1 | ns1.yournameserver.net |
这是旧代码的一部分:
$res2=$dbh->query("select nsip,nsid,nsname from nameservers");
while (%ns2=$res2->fetchhash)
{
$nsips{$ns2{nsid}}=$ns2{nsip};
$nsnames{$ns2{nsid}}=$ns2{nsname};
}
所以我尝试使用 fetchrow_hashref 但它对我不起作用:
main::(nsconfgen.pl:170): while (%ns2=$res2->fetchrow_hashref){
DB<193> n
Reference found where even-sized list expected at nsconfgen.pl line 170.
at nsconfgen.pl line 170.
main::(nsconfgen.pl:171): $nsips{$ns2{nsid}}=$ns2{nsip};
DB<193> p $ns2{nsid}
( i've get no value from the hash )
当然,我已经通过 Google 进行了爬行,并且尝试了很多示例,但没有任何帮助......
所以我希望我能在这里得到一些帮助。
非常感谢!
最佳答案
在DBI
实现器中,fetchrow_hashref
的返回值是对哈希的引用,而不是哈希。对代码进行一些更改即可得到正确的结果:
while ($ns2=$res2->fetchrow_hashref) {
$nsips{$ns2->{nsid}}=$ns2->{nsip};
$nsnames{$ns2->{nsid}}=$ns2->{nsname};
}
关于mysql - fetchrow_hashref 还是 fetchhash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36358911/
我想知道是否有人可以帮助我解决旧 Perl 代码的令人沮丧的问题。我的实际任务是将旧的 Perl 脚本从版本 5.10.1 迁移到 5.18.2。 所以我已经解决了脚本的简单问题,例如错误的调用、错误
我正在尝试从 MySQL 数据库中获取信息,然后我将在 perl 中对其进行操作: use strict; use DBI; my $dbh_m= DBI->connect("dbi:mysql:Po
我真的需要你的帮助来理解下面的 perl 示例代码: #!/usr/bin/perl # Hashtest use strict; use DBI; use DBIx::Log4perl; use D
我想使用下面显示的数据按 countryid 对我的结果进行分组。 my @test = (); my $st = qq[ SELECT id,countryID,abbrev F
我无法使用以下代码正确检索输出。请帮我整理一下。 我得到不同的输出以在 MySQL 和 Perl 中运行。 截至目前,当我使用 Dumper 时它返回 undef。但我希望它显示为空。 $re
我有一些看起来像这样的东西: my $report = new ReportGenerator; #custom object my $dbh = $dbc->prepare('SELECT * FR
我知道: $sth->fetchrow_hashref返回从数据库中获取的行的 hashref, $sth->fetchrow_arrayref返回从数据库中获取的行的数组引用,和 $sth->fet
我是一名优秀的程序员,十分优秀!