gpt4 book ai didi

mysql - 如何修复服务器错误 “Use of uninitialized value XX in numeric lt(<)”的代码?

转载 作者:行者123 更新时间:2023-12-03 08:25:31 26 4
gpt4 key购买 nike

清理服务器上的一些旧代码...在第228行出现错误...摘录...而while($ i <$ num_cols)是出现以下错误的行AH01215“在数字中使用未初始化的值$ num_cols lt(<)at“

我添加了my并尝试检查未定义的代码是否有效,但是我希望代码在没有Web服务器错误日志消息的情况下工作。

我有几个“未初始化的使用”错误,希望能找到解决方法,以帮助我解决其他问题。

            $sth = $h->prepare($sel);
if ($sth == 0) {
print "<XMLRSSQLERROR>ERROR: $DBI::errstr</XMLRSSQLERROR>\n";
exit;
}
if (!$sth->execute) {
print "<XMLRSSQLERROR>ERROR: $DBI::errstr</XMLRSSQLERROR>\n";
exit;
}

my $num_cols = $sth->{NUM_OF_FIELDS};

#Start the XML output
#Start the RS section and add the table name
print "<RS>\n";
print "$table\n";

#Start the SCHEMA section
print "<SCHEMA>\n";

my @columns = @{$sth->{NAME}};
my @type = @{$sth->{TYPE}};

my $i = 0;
while ($i < $num_cols) {
print "<$columns[$i]>";
if (($type[$i] == 1) or ($type[$i] == 12) or ($type[$i] == -1)) {
print "char";
} elsif (($type[$i] == 4) or ($type[$i] == 5) or ($type[$i] == -6)) {
print "int";
} elsif (($type[$i] == 2) or ($type[$i] == 6) or ($type[$i] == 7) or ($type[$i] == 8)) {
print "float";
} elsif (($type[$i] == 11) or ($type[$i] == 10) or ($type[$i] == 9)) {
print "datetime";
} else {
print "$type[$i]"
}
print "</$columns[$i]>\n";
$i += 1;
}

#End the SCHEMA section
print "</SCHEMA>\n";

最佳答案

正如其他人所说,$sth->{NUM_OF_FIELDS}未定义似乎很奇怪。我绝对想知道那里发生了什么。

但是在我看来,您根本不需要它。它之所以存在,是因为您使用的while循环可能应该写成foreach循环。您可以删除:

my $num_cols = $sth->{NUM_OF_FIELDS};

并替换:
while ($i < $num_cols) {

与:
foreach my $i (0 .. $#columns) {

关于mysql - 如何修复服务器错误 “Use of uninitialized value XX in numeric lt(<)”的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60726864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com