I'm not sure why you're currently getting error messages, maybe something
else is overwriting dbh. But I am concerned about your lack of error
checking and your use of prepare (and if this was just a stripped down
example, much apologies).
my $dbh = $self->param('dbh') or carp "dbh is not behaving\n"; ... $sth->execute() or carp "problems executing ...\n"
note bad code showing use of "do" vice prepare deleted - it was just wrong but you probably should try prepare_cached and bind_params.
my $query = "SELECT id FROM table WHERE user = ?"; my $results=$self->query($query, $user )->fetchrow_array; sub query { # Do database query my($self, $sql, $val ) = @_; my $dbh=$self->param('dbh') or die "what's up with dbh?\n"; my $sth = $dbh->prepare_cached( $sql ); $sth->execute( $val ); return $sth; }
But maybe I'm all wet and you were just showing a snippet.
-derby Update: nevermind that whole "do" thingy - that only works on non-SELECT sql. drats.
In reply to Re: Best way to call DBI query
by derby
in thread Best way to call DBI query
by hakkr
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |