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


in reply to DBD: bind_column behviour with multiple "unnamed" columns

I was not able to replicate the behavior you describe. I don't have MS-SQL server, but I tried your code on a MySQL ad a SQLite table, and it works as advertised, i.e. the data comes as I expect and the field names in $sth->{NAME} contain exactly what I put in my select statement, with or without alias.

I can confirm you that fetch is actually fetching an arrayref, as you can see by yourself if you set a line with DBI->trace(4); before your loop. In my test, I get something like this:

fetch for DBD::SQLite::st fetch= [ 'xx' 'yy' 'zz' ] row1 at test_bind.pl line 24

The DBI docs give:

 "fetchrow_arrayref"
       $ary_ref = $sth->fetchrow_arrayref;
       $ary_ref = $sth->fetch;    # alias

My guess is that your DBD driver is not playing according to DBI rules.

 _  _ _  _  
(_|| | |(_|><
 _|