http://qs321.pair.com?node_id=263159


in reply to Re: SQLite Documentation
in thread SQLite Documentation

Wow, do I feel stupid. I completely missed that :) The following replicates his problem (along with the error message):

my $sql = "SELECT * FROM foo"; my $sth = $dbh->prepare($sql) || die "Couldn't prepare $sql: $DBI::err +str"; while ( my @row = $sth->fetchrow_array ) { print "@row\n"; }

This appears to be a bug in the error reporting.

Cheers,
Ovid

New address of my CGI Course.
Silence is Evil (feel free to copy and distribute widely - note copyright text)

Replies are listed 'Best First'.
Re: Re: Re: SQLite Documentation
by cidaris (Friar) on Jun 05, 2003 at 14:41 UTC
    Well, don't feel stupid, Ovid.
    After further examination and the hints of a few whispered messages (silent11) I realized that the "while" construct doesn't actually execute the prepared statement, only receives the output and continues to as long as it is produced.

    Adding an $sth->execute() directly before the loop solved the problem.

    I can't find an example in my code, but I feel fairly certain that I always just went straight to the "while" construct without an "execute()" with DBD::MySQL, but then again, I could be wrong.

    I usually am. ;)

    --cidaris