in reply to fetchrow_array DBI
Did you read the DBI documentation for the do method? It clearly states:
This method is typically most useful for non-SELECT statements that either cannot be prepared in advance (due to a limitation of the driver) or do not need to be executed repeatedly. It should not be used for SELECT statements because it does not return a statement handle (so you can't fetch any data).
This is mostly a cut and paste from your code and has not been tested:
use warnings; use DBI; use DBD::mysql; use CGI qw( :standard ); use CGI::Carp "fatalsToBrowser"; print header, start_html('SQL Must Work!'); my $dbh = DBI->connect("DBI:mysql:data:server","uname","pass") or die( "Could not make connection to database: $DBI::errstr" ); my $sth = $dbh->prepare( qq{SELECT Tab1, Tab2, Tab3 FROM UData } ) or die $dbh->errstr; my $rc = $sth->execute or die $sth->errstr; if ($rc > 0) { while (my @row = $dbh->fetchrow_array ) { my ( $item0, $item1, $item2 ) = @row; if ($item0 >= $somevalue) { print br, "$item0"; } } } else { # check if there were no results or an error } $sth->finish; $dbh->disconnect; print '<h2>All Done</h2>'; print end_html;
|
|---|