http://www.perlmonks.org?node_id=298139


in reply to Re: DBI returning mysql columns in strange order.
in thread DBI returning mysql columns in strange order.

Wrong.

That won't solve the problem, which is the order of columns returned from a hash, not the order of records in a data set.

Since column order seems to be important, a good piece of advice would be usine specific column names (as dragonchild said) in the select statement, and fetching records with fetchrow_arrayref.

If a hash is also needed, then it must be integrated by a list of columns.

Consider this (untested) example.

my @columns = (qw(col1 col2 col3)); my $query = "SELECT " . join (",", @columns) . " FROM tablename"; my $sth = $dbh->prepare($query); $sth->execute; while (my $href = $sth->fetchrow_hashref) { for (@columns) { print "$_ => $href->{$_}\n"; } }