Revelation has asked for the wisdom of the Perl Monks concerning the following question:
The queries themselves:$moo = "3"; my @recs; Functions- my @fields = qw( MEH MOOSE ); bind_hash_query_arraydec: @recs = bind_hash_query_arraydec('BLEH', \@f +ields, 'WHERE pissant = ?',$moo); bind_hash_query: @recs = bind_hash_query('SELECT MEH, MOOSE FROM BLEH +WHERE pissant = ?',$moo); doUpdate: @recs = doQuery('SELECT MEH, MOOSE FROM BLEH WHERE pissant += ?',$moo);
If Time Bunce is around, his help would be most appreciated ;)sub bind_hash_query_arraydec { my $table = shift; my $fields = shift; my $extra = shift; my @fields = @{$fields}; my $sql = 'SELECT ' . join(', ', @fields) . " FROM $table $extra"; my $sth = $db->prepare($sql); $sth->execute(@_); my %results; my @recs; @results{@fields} = (); $sth->bind_columns(map { \$results{$_} } @fields); while ($sth->fetch()) { push @recs, { %results }; } return @recs; } sub bind_hash_query { my $sql = shift; my $sth = $db->prepare($sql); $sth->execute(@_); my %results; my @recs; $sth->bind_columns( \( @results{ @{$sth->{NAME} } } )); while ($sth->fetch()) { push @recs, { %results }; } return @recs; } sub doQuery { my @recs; my $sql = shift; my $st = $db->prepare($sql); my $rc = $st->execute(@_); my $rec; while ($rec = $st->fetchrow_hashref) { push @recs, $rec; } $st->finish; return @recs; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Implementation Of Fetchall_hashref
by runrig (Abbot) on Apr 03, 2002 at 03:49 UTC | |
|
Re: Implementation Of Fetchall_hashref
by BeernuT (Pilgrim) on Apr 03, 2002 at 01:05 UTC |