Очистка старого кода на сервере ... получение ошибки в строке 228 ... извлечение фрагмента ... while ($ i <$ num_cols) - строка с ошибкой AH01215 "Использование неинициализированного значения $ num_cols in numberri c lt (<) at "</p>
Я добавил в my и попытался проверить, не определен ли код, но я хотел бы, чтобы код работал без сообщений журнала ошибок веб-сервера.
У меня есть несколько таких ошибок «Использование неинициализированных», в надежде, что решение этой проблемы поможет мне с остальными.
$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";