in reply to Ordering return from fetchrow_hashref
Yes, you were quite right, the reason I needed this order is that I will be displaying the data directly from the database to autogenerate a status report, with little user intervention and with the column order derived from the sql query.
Also, other people are ultimately relying on me to return an array of hash references, so using array ref and converting would be messier.
The solution you suggested worked perfectly, I've implemented the following routine and it works exactly as it should:
sub read_from_db { my %params = @_; my $dbh = $params{-dbh} || ""; my $query = $params{-query} || ""; my @results_array; if ($dbh =~ /DBI/) { my $sth = $dbh->prepare($query); my $result = $sth->execute(); while (my $row = $sth->fetchrow_hashref()) { tie my(%hash_to_return), "Tie::IxHash"; map({$hash_to_return{$_}=$row->{$_}} @{$sth->{NAME}}); my $ref = \%hash_to_return; push(@results_array, $ref); } $sth->finish; } return @results_array; }
So thanks...!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Ordering return from fetchrow_hashref
by fiasudeen (Initiate) on Sep 02, 2014 at 19:31 UTC |