몇 줄의 코드를 저장하기 위해 fetchrow_hashref
대신 DBI의 selectrow_hashref
을 사용하려하지만 같은 행의 데이터를 계속해서 계속 반환합니다. 내가 fetchrow_hashref
를 사용하는 경우Perl DBI의 selectrow_hashref를 통해 각 반복마다 새 행을 반환 할 수 있습니까?
my $select="SELECT * FROM table";
while (my ($user_ref) = $dbh->selectrow_hashref()) {
# $user_ref is the same each time!
}
은 다 잘하고, 각 반복 내가 새로운 데이터를 얻을.
my $select="SELECT * FROM table";
my $sth = $dbh->prepare($select) || die "prepare: $select: $DBI::errstr";
$sth->execute() || die "execute: $select: $DBI::errstr";
while (my ($user_ref) = $sth->fetchrow_hashref()) {
# works great, new data in $user_ref each iteration
}
기도해, 내가 뭘 잘못하고있어? selectrow_hashref
은 단일 레코드를 검색하기위한 것입니까? 그런 식으로는 보이지 않는다. in the doc.
는, "그것은 문에서 데이터의 첫 번째 행을 반환합니다." –
또한, 반복적으로 호출 될 명령문에 대해'prepare' 메소드를 사용하지 않을 것입니다. 'selectrow'는 one-off satations에 더 잘 사용됩니다. – tjd