kiat has asked for the wisdom of the Perl Monks concerning the following question:
I'm puzzled by the behaviour of the following snippet of code:
my $query = 'apple'; my $sql = qq{ SELECT COUNT(*) FROM table1 WHERE name=? UNION SELECT COUNT(*) FROM table2 WHERE name=? }; my $sth->execute($sql, $query, $query) my $rows = $sth->fetchall_arrayref(); #table1 apple apple orange pear #table2 pear apple orange orange
That's correct. However, when the contents of the tables change as follows (1 more 'apple' added to table2):$VAR1 = [ [ '2' ], [ '1' ] ];
That is, two instances of 'apple' in table1 and two in table2. In this case, $rows returns:#table1 apple apple orange pear #table2 pear apple orange orange apple
That is, a single annonymous array in an AoA.$VAR1 = [ [ '2' ] ];
I was expecting $VAR1 to contain:
$VAR1 = [ [ '2' ], [ '2' ] ];
Thanks in anticipation :)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Perl DBI fetchall_arrayref - puzzling behaviour
by gellyfish (Monsignor) on Jul 16, 2004 at 13:16 UTC | |
by kiat (Vicar) on Jul 16, 2004 at 13:21 UTC | |
by dragonchild (Archbishop) on Jul 16, 2004 at 13:27 UTC | |
by kiat (Vicar) on Jul 16, 2004 at 13:33 UTC | |
by gellyfish (Monsignor) on Jul 16, 2004 at 13:33 UTC |