info > DBIx::ContextualFetch

DBIx::ContextualFetch(User Contributed Perl DocumentDBIx::ContextualFetch(3pm))

πŸ“– NAME

DBIx::ContextualFetch - Add contextual fetches to DBI

πŸš€ Quick Reference

Use CaseCommandDescription
Connect with RootClassDBI->connect($dsn, $user, $pass, { RootClass => "DBIx::ContextualFetch" })πŸ”§ Enables contextual fetch methods for all statement handles
Execute with bind values and columns$sth->execute(\@bind_values, \@bind_cols)πŸ”— Combines bind_param, execute, and bind_columns in one call
Context‑sensitive fetch$row_ref = $sth->fetch; @row = $sth->fetch;πŸ“₯ Scalar β†’ arrayref, list β†’ array
Fetch hash (scalar or list)$row_ref = $sth->fetch_hash; %row = $sth->fetch_hash;πŸ“‹ Scalar β†’ hashref, list β†’ hash
Fetch all rows$rows_ref = $sth->fetchall; @rows = $sth->fetchall;πŸ“¦ Scalar β†’ arrayref of arrayrefs, list β†’ list of arrayrefs
Fetch all rows as hashes$rows_ref = $sth->fetchall_hash; @rows = $sth->fetchall_hash;πŸ“š Scalar β†’ arrayref of hashrefs, list β†’ list of hashrefs

πŸ“‹ SYNOPSIS

               my $dbh = DBI->connect(...., { RootClass => "DBIx::ContextualFetch" });

               # Modified statement handle methods.
               my $rv = $sth->execute;
               my $rv = $sth->execute(@bind_values);
               my $rv = $sth->execute(\@bind_values, \@bind_cols);

               # In addition to the normal DBI sth methods...
               my $row_ref = $sth->fetch;
               my @row     = $sth->fetch;

               my $row_ref = $sth->fetch_hash;
               my %row     = $sth->fetch_hash;

               my $rows_ref = $sth->fetchall;
               my @rows     = $sth->fetchall;

               my $rows_ref = $sth->fetchall_hash;
               my @tbl      = $sth->fetchall_hash;

πŸ“ DESCRIPTION

It always struck me odd that DBI didn't take much advantage of Perl's context sensitivity. DBIx::ContextualFetch redefines some of the various fetch methods to fix this oversight. It also adds a few new methods for convenience (though not necessarily efficiency).

πŸ›  SET-UP

               my $dbh = DBIx::ContextualFetch->connect(@info);
               my $dbh = DBI->connect(@info, { RootClass => "DBIx::ContextualFetch" });

To use this method, you can either make sure that everywhere you normally call DBI->connect() you either call it on DBIx::ContextualFetch, or that you pass this as your RootClass. After this DBI will Do The Right Thing and pass all its calls through us.

πŸ”§ EXTENSIONS

πŸ”§ execute

               $rv = $sth->execute;
               $rv = $sth->execute(@bind_values);
               $rv = $sth->execute(\@bind_values, \@bind_cols);

execute() is enhanced slightly:

In addition, execute will accept tainted @bind_values. I can't think of what a malicious user could do with a tainted bind value (in the general case. Your application may vary.)

Thus a typical idiom would be:

               $sth->execute([$this, $that], [\($foo, $bar)]);

Of course, this method provides no way of passing bind attributes through to bind_param or bind_columns. If that is necessary, then you must perform the bind_param, execute, bind_col sequence yourself.

πŸ“₯ fetch

               $row_ref = $sth->fetch;
               @row     = $sth->fetch;

A context sensitive version of fetch(). When in scalar context, it will act as fetchrow_arrayref. In list context it will use fetchrow_array.

πŸ“‹ fetch_hash

               $row_ref = $sth->fetch_hash;
               %row     = $sth->fetch_hash;

A modification on fetchrow_hashref. When in scalar context, it acts just as fetchrow_hashref() does. In list context it returns the complete hash.

πŸ“¦ fetchall

               $rows_ref = $sth->fetchall;
               @rows     = $sth->fetchall;

A modification on fetchall_arrayref. In scalar context it acts as fetchall_arrayref. In list it returns an array of references to rows fetched.

πŸ“š fetchall_hash

               $rows_ref = $sth->fetchall_hash;
               @rows     = $sth->fetchall_hash;

A mating of fetchall_arrayref() with fetchrow_hashref(). It gets all rows from the hash, each as hash references. In scalar context it returns a reference to an array of hash references. In list context it returns a list of hash references.

πŸ‘€ ORIGINAL AUTHOR

Michael G Schwern as part of Ima::DBI

πŸ‘€ CURRENT MAINTAINER

Tony Bowden <tony AT tmtm.com>

πŸ“„ LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

πŸ“š SEE ALSO

DBI. Ima::DBI. Class::DBI.

perl v5.32.0 2020-12-28 DBIx::ContextualFetch(3pm)

DBIx::ContextualFetch
πŸ“– NAME πŸš€ Quick Reference πŸ“‹ SYNOPSIS πŸ“ DESCRIPTION πŸ›  SET-UP πŸ”§ EXTENSIONS
πŸ”§ execute πŸ“₯ fetch πŸ“‹ fetch_hash πŸ“¦ fetchall πŸ“š fetchall_hash
πŸ‘€ ORIGINAL AUTHOR πŸ‘€ CURRENT MAINTAINER πŸ“„ LICENSE πŸ“š SEE ALSO

Generated by phpman v4.9.26-1-g511901d Author: Che Dong Under GNU General Public License
2026-08-09 09:01 @2600:1f28:365:80b0:50b3:453e:ff52:20f7
CrawledBy CCBot/2.0 (https://commoncrawl.org/faq/)
Valid XHTML 1.0 Transitional!Valid CSS!
Enhanced by LLM: deepseek-v4-flash / taotoken.net / www.chedong.com - original format