On 2005-08-12 14:36:02 -0400, Owen wrote:
> On Wed, 10 Aug 2005 21:35:31 +0200
> "Peter J. Holzer" <[EMAIL PROTECTED]> wrote:
> >  the next line causes an exception, but shouldn't:
> > $tkcount = $dbh->selectrow_array($sth, {}, 'baz');
> > print "$tkcount\n";
> 
> Yes, I get the same error message when s/baz/bar/ but not s/baz/foo/

Oops. Seems I wasn't quite awake when I tested that. I always get the
error at the second selectrow_array, regardless of whether I'm searching
for foo, bar or baz.

If I prepare a new statement handle, all three cases work as expected.

So the issue doesn't seem to be whether the query returns any rows, but
passing a statement handle to multiple selectrow_array calls.

OTOH, reusing the statement handle with execute and fetchrow_array works
fine:

my $sth = $dbh->prepare("select count from tokens where token=?");
my $tkcount;
$sth->execute('foo');
while (($tkcount) = $sth->fetchrow_array) {
    print "$tkcount\n";
}
$sth->execute('bar');
while (($tkcount) = $sth->fetchrow_array) {
    print "$tkcount\n";
}
$sth->execute('baz');
while (($tkcount) = $sth->fetchrow_array) {
    print "$tkcount\n";
}
$dbh->disconnect;

        hp

-- 
   _  | Peter J. Holzer    | In our modern say,learn,know in a day
|_|_) | Sysadmin WSR       | world, perhaps being an expert is an
| |   | [EMAIL PROTECTED]      | outdated concept.
__/   | http://www.hjp.at/ |    -- Catharine Drozdowski on dbi-users.

Attachment: pgpL4H24NzoJ8.pgp
Description: PGP signature

Reply via email to