Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

DBI and binding a list of hashes

by wfsp (Abbot)
on Dec 12, 2005 at 12:46 UTC ( [id://516000]=perlquestion: print w/replies, xml ) Need Help??

wfsp has asked for the wisdom of the Perl Monks concerning the following question:

In gmax's excellent DBI recipes under the heading 'Getting a list of hashes' he give this example:

my $sth = $dbh->prepare($query2); $sth->execute(); my $employees_loh = $sth->fetchall_arrayref({});

Later, under 'Binding columns and fetching', he explains that:

The fastest method, which you can always count on, is fetchrow_arrayref. It is even faster when you combine it with binding.

Is it useful/possible to bind a list of hashes (as shown above)?.

The following (similar to one of gmax's examples):
update: see note below

$sth->execute($year, $month); my @array = (); $sth->bind_col(\(@array)); $sth->fetchall_arrayref({});
for instance, gives:
DBI bind_col: invalid number of arguments: got handle + 0, expected ha +ndle + between 2 and 3 Usage: $h->bind_col($column, \$var [, \%attr]) at etc...
Any pointers?

update: gmax's example is for fetchcol_arrayref

Replies are listed 'Best First'.
Re: DBI and binding a list of hashes
by Belgarion (Chaplain) on Dec 12, 2005 at 16:53 UTC

    I'm not sure I understand what exactly you are asking for. There is pretty good documentation about column binding in the DBI documention. To wit, the documentation for bind_columns() shows an example:

    $dbh->{RaiseError} = 1; # do this, or check every call for errors $sth = $dbh->prepare(q{ SELECT region, sales FROM sales_by_region }); $sth->execute; my ($region, $sales); # Bind Perl variables to columns: $rv = $sth->bind_columns(\$region, \$sales); # you can also use Perl's \(...) syntax (see perlref docs): # $sth->bind_columns(\($region, $sales)); # Column binding is the most efficient way to fetch data while ($sth->fetch) { print "$region: $sales\n"; }

    If you keep reading the documentation for that method, they even show an example of binding to values inside a hash.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://516000]
Approved by Corion
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (3)
As of 2024-07-25 18:50 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.