On Fri, Feb 27, 2009 at 08:43, David Shere <[email protected]> wrote:
> The following sub uses "fetchall_arrayref" in the DBI module to put the
> results of an SQL command into an array, where each element of the array
> is a hash of that records name/value pairs. The documentation says to
> pass it a reference to a hash. My interpretation of that requirement is
> below. Did I miss something?
>
> sub SQLCom { # Issues a command to the MySQL database.
> my $dbh = shift; # Database object (from DBI)
> my $CommandString = shift; # SQL Command
> my $Query = $dbh->prepare($CommandString);
>
> $Query->execute() or (print "Can't execute database command
> \"$CommandString\"\n\n" and return undef);
> if ($CommandString =~ m/SELECT/i) {
> my @return = @{$Query->fetchall_arrayref(\%asfd)};
> return @return;
> }
> return "true";
> }
Where does %asdf come from? Anyway, there are four ways to call
fetchall_arrayref.
You can call it with an empty arrayref or not arguments at all:
my $AoA = $sth->fetchall_arrayref([]);
my $AoA = $sth->fetchall_arrayref();
$AoA contains a reference to an array of arrays, so, if the data in
the data base looked like this:
foo|bar|baz
1|2|3
4|5|6
7|8|9
then the $AoA would look like this
my $AoA = [
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ],
];
You can call it with an empty hashref:
my $AoH = $sth->fetchall_arrayref({});
$AoH contains a reference to an array of hashes, so, if the data in
the data base looked like this:
foo|bar|baz
1|2|3
4|5|6
7|8|9
then the $AoH would look like this
my $AoH = [
[ foo => 1, bar => 2, baz => 3 ],
[ foo => 4, bar => 5, baz => 6 ],
[ foo => 7, bar => 8, baz => 9 ],
];
You can call it with a hashref of the names columns:
my $AoH = $sth->fetchall_arrayref({foo => 1, baz => 1});
$AoH contains a reference to an array of hashes, so, if the data in
the data base looked like this:
foo|bar|baz
1|2|3
4|5|6
7|8|9
then the $AoH would look like this
my $AoH = [
[ foo => 1, baz => 3 ],
[ foo => 4, baz => 6 ],
[ foo => 7, baz => 9 ],
];
--
Chas. Owens
wonkden.net
The most important skill a programmer can have is the ability to read.
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/