Perl 参数 "user" 在数组元素中不是数字
Perl argument "user" isn't numeric in array element
我总是收到消息说我在数组中的参数不是数字。
它在这段小代码中发生了 5 次:
my $mcnamequery = "SELECT mcID FROM tblMCName WHERE mcName = '".$mcname."'";
$mcid = dbSelect($mcnamequery);
print $mcid->{mcID} . "\n";
my $userfsquery = "SELECT userFS FROM tblMcSubs WHERE mcFS = '".$mcid->{mcID}."'";
my $execute = $dbh->prepare($userfsquery);
$execute->execute();
while (@usersfs = $execute->fetchrow_array()) {
print $usersfs['userFS'] . "\n";
my $mailquery = "SELECT useremail FROM tblUser WHERE userID = '".$usersfs['userFS']."'";
$execute2 = $dbh->prepare($mailquery);
$execute2->execute();
while (@mails = $execute2->fetchrow_array()) {
$counter++;
print $mails['useremail']. "\n";
if($counter == 1){
$addresses = $mails['useremail'];
}else{
$addresses = $addresses. " " . $mails['useremail'];
}
}
}
第一次发生在这一行:print $usersfs['userFS'] . "\n";
之后,我在任何想使用 $usersfs['userFS']
或 $mails['useremail']
的地方都会收到此消息
错误信息:
在 /tem/obm/morningcheck/jantool.pl 第 520 行的数组元素中,参数 "userFS" 不是数字。
在 /tem/obm/morningcheck/jantool.pl 第 522 行的数组元素中,参数 "userFS" 不是数字。
在 /tem/obm/morningcheck/jantool.pl 第 527 行的数组元素中,参数 "useremail" 不是数字。
在 /tem/obm/morningcheck/jantool.pl 第 529 行的数组元素中,参数 "useremail" 不是数字。
参数 "useremail" 在 /tem/obm/morningcheck/jantool.pl 行 531.
的数组元素中不是数字
希望你能帮助我,谢谢!
print $mails['useremail']. "\n";
这是你的问题。 []
表示一个数组索引,指向一个名为 @mails
的数组。所以字符串 arg 永远不会 有效。
也许你的意思是:
print $mails{'useremail'}."\n";
这是一个名为 %mails
的散列的关键参数。
但是当您获取一个名为 @mails
的数组时...您必须找出索引,或者以其他方式建立一些键值关联。
鉴于您的两个查询都获取了一个列,那么您可以简单地访问:
$mails[0]
和
$usersfs[0]
在 Perl 中,数组使用数字索引。 'userFS'
不是数字,因此出现错误。
如果要使用哈希表(也称为关联数组),则必须在键周围使用花括号:
my %usersfs;
$usersfs{userFS} = "whatever";
我总是收到消息说我在数组中的参数不是数字。 它在这段小代码中发生了 5 次:
my $mcnamequery = "SELECT mcID FROM tblMCName WHERE mcName = '".$mcname."'";
$mcid = dbSelect($mcnamequery);
print $mcid->{mcID} . "\n";
my $userfsquery = "SELECT userFS FROM tblMcSubs WHERE mcFS = '".$mcid->{mcID}."'";
my $execute = $dbh->prepare($userfsquery);
$execute->execute();
while (@usersfs = $execute->fetchrow_array()) {
print $usersfs['userFS'] . "\n";
my $mailquery = "SELECT useremail FROM tblUser WHERE userID = '".$usersfs['userFS']."'";
$execute2 = $dbh->prepare($mailquery);
$execute2->execute();
while (@mails = $execute2->fetchrow_array()) {
$counter++;
print $mails['useremail']. "\n";
if($counter == 1){
$addresses = $mails['useremail'];
}else{
$addresses = $addresses. " " . $mails['useremail'];
}
}
}
第一次发生在这一行:print $usersfs['userFS'] . "\n";
之后,我在任何想使用 $usersfs['userFS']
或 $mails['useremail']
错误信息: 在 /tem/obm/morningcheck/jantool.pl 第 520 行的数组元素中,参数 "userFS" 不是数字。 在 /tem/obm/morningcheck/jantool.pl 第 522 行的数组元素中,参数 "userFS" 不是数字。 在 /tem/obm/morningcheck/jantool.pl 第 527 行的数组元素中,参数 "useremail" 不是数字。 在 /tem/obm/morningcheck/jantool.pl 第 529 行的数组元素中,参数 "useremail" 不是数字。 参数 "useremail" 在 /tem/obm/morningcheck/jantool.pl 行 531.
的数组元素中不是数字希望你能帮助我,谢谢!
print $mails['useremail']. "\n";
这是你的问题。 []
表示一个数组索引,指向一个名为 @mails
的数组。所以字符串 arg 永远不会 有效。
也许你的意思是:
print $mails{'useremail'}."\n";
这是一个名为 %mails
的散列的关键参数。
但是当您获取一个名为 @mails
的数组时...您必须找出索引,或者以其他方式建立一些键值关联。
鉴于您的两个查询都获取了一个列,那么您可以简单地访问:
$mails[0]
和
$usersfs[0]
在 Perl 中,数组使用数字索引。 'userFS'
不是数字,因此出现错误。
如果要使用哈希表(也称为关联数组),则必须在键周围使用花括号:
my %usersfs;
$usersfs{userFS} = "whatever";