は、ここで私が働いているSQLiteのデータベースアプリケーションからのコードの抜粋です:PerlのSQLite3:{名前}が機能していませんか?
my $query = "select * from pins";
my $sth = $dbh->prepare($query) or die "Couldn't prep: $DBI::errstr";
$sth->execute or die "Exec problem: $DBI::errstr";
my $result = $sth->fetchall_arrayref();
my $names = $sth->{NAME} or die "Name failed: $DBI::errstr";
foreach my $row (@$res) {
# ... do some row-specific things
foreach my $cell (@$row) {
# ... do some cell-specific things
}
}
クエリがうまくオフ発射し、実際にそれが正しい結果を返します。ただし、何らかの理由により、この行は、
my $names = $sth->{NAME} or die "Name failed: $DBI::errstr";
が失敗します。 {名前}は、私が期待していた配列参照を返すことはありません。もし私がdie節を出すと、それはうまく動作します(当然$ namesを使用しているところでは、予期しない "使用している初期化されていない値"警告を投げます)。
質問がうまくいっていれば{NAME}が立ち上がらないという明白な理由はありますか?
ありがとうございます!
文のオブジェクトの "NAME"属性が何をしているのかを教えてください。一見すると、DBI PODまたはソースのいずれかから直接回答を得ることができませんでした。列名の配列参照ですか? +1 QとAの両方に対して+1 – DVK
fetchall_arrayrefの後でNAMEを使用できない理由は、フェッチされたすべての行がアクティブになっても、その文がアクティブでなくなったためです。 – bohica