2016-05-13 14 views
0

私は古いコードを継承しています。これは、MySQLデータベーステーブルからカテゴリのリストを取得します。私はそれらに多レベルのサポートを追加する任務があります。私はほぼ完了しましたが、何らかの理由で、実際にアプリを試してみるとエラーになります。なぜこのエラーが発生し続けるのですか?

誤差がある(あなたもhttp://detyams.ru/?cat=1でそれを見ることができます):

/usr/local/lib/perl5/site_perl/mach/5.18/のARRAYのリファレンスとして未定義の値を使用することはできません私はそこにDBIメソッドを使用してのいくつかの例を見てきた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; 
} 

DBI.pmライン2074、ライン(のようなhttp://www.perlmonks.org/?node_id=284436#loh)は、すべては私のコードと一致してあるように思われます。

答えて

-3

クエリの構文エラー(WHERE句が間違った位置に置かれていた場合)の場合、ちょうど判明しました。fetchall_arrayref()は根本的な問題の代わりに潜在的なエラーを報告するようです。サーバーログを確認して見つけました。

+0

これらのダウンボートは何ですか? – ZzZombo

関連する問題