Ich habe alten Code geerbt. Es erhält eine Liste von Kategorien aus einer MySQL-Datenbanktabelle. Ich habe die Aufgabe, ihnen mehrstufige Unterstützung zu geben. Ich habe es fast geschafft, aber aus irgendeinem Grund ist es einfach fehlerhaft, wenn ich die App in Aktion versuche.Warum dieser Fehler weiterhin auftritt?
Der Fehler ist (man kann es auch bei http://detyams.ru/?cat=1 sehen):
kann nicht einen nicht definierten Wert als ARRAY Bezug auf /usr/local/lib/perl5/site_perl/mach/5.18/ verwenden DBI.pm Linie 2074, Linie 2231.
sub catlist
{
my $self=shift;
state $sth=$self->db->prepare(q/SELECT c.cat_id,c.cat_name,COUNT(pn.p_id) as cnt from category c
LEFT JOIN price_new pn ON (pn.cat_id=c.cat_id) GROUP BY pn.cat_id WHERE c.parent_id=?/);
$sth->execute(0);
my @catlist=$sth->fetchall_arrayref({}); # <- this call leads to the failure in the deep of DBI code.
foreach my $item (@catlist)
{
$sth->execute($item->{cat_id});
$item->{children}=$sth->fetchall_arrayref({});
}
return @catlist;
}
ich habe einige Beispiele nachgeschlagen dort die DBI-Methoden verwenden (wie http://www.perlmonks.org/?node_id=284436#loh), erscheinen alle mit meinem Code in Einklang zu sein.
Wozu dienen diese downvotes? – ZzZombo